Seam SVN: r10927 - branches/community/Seam_2_1/src/test/ftest/seamgen/src/main/org/jboss/seam/test/functional/seamgen.
by seam-commits@lists.jboss.org
Author: norman.richards(a)jboss.com
Date: 2009-05-18 11:48:57 -0400 (Mon, 18 May 2009)
New Revision: 10927
Modified:
branches/community/Seam_2_1/src/test/ftest/seamgen/src/main/org/jboss/seam/test/functional/seamgen/DatabaseTest.java
Log:
use correct password property for database tests
Modified: branches/community/Seam_2_1/src/test/ftest/seamgen/src/main/org/jboss/seam/test/functional/seamgen/DatabaseTest.java
===================================================================
--- branches/community/Seam_2_1/src/test/ftest/seamgen/src/main/org/jboss/seam/test/functional/seamgen/DatabaseTest.java 2009-05-18 13:30:48 UTC (rev 10926)
+++ branches/community/Seam_2_1/src/test/ftest/seamgen/src/main/org/jboss/seam/test/functional/seamgen/DatabaseTest.java 2009-05-18 15:48:57 UTC (rev 10927)
@@ -47,7 +47,7 @@
{
Class.forName(ftestProperties.getProperty("hibernate.connection.driver_class"));
String url = ftestProperties.getProperty("hibernate.connection.url");
- conn = DriverManager.getConnection(url, ftestProperties.getProperty("hibernate.connection.username"), ftestProperties.getProperty("hibernate.connection.username"));
+ conn = DriverManager.getConnection(url, ftestProperties.getProperty("hibernate.connection.username"), ftestProperties.getProperty("hibernate.connection.password"));
BufferedReader reader = new BufferedReader(new InputStreamReader(is));
String line = reader.readLine();
while (line != null)
14 years, 11 months
Seam SVN: r10926 - branches/community/Seam_2_1/seam-gen.
by seam-commits@lists.jboss.org
Author: norman.richards(a)jboss.com
Date: 2009-05-18 09:30:48 -0400 (Mon, 18 May 2009)
New Revision: 10926
Modified:
branches/community/Seam_2_1/seam-gen/build.xml
Log:
JBSEAM-4183
Modified: branches/community/Seam_2_1/seam-gen/build.xml
===================================================================
--- branches/community/Seam_2_1/seam-gen/build.xml 2009-05-18 08:49:55 UTC (rev 10925)
+++ branches/community/Seam_2_1/seam-gen/build.xml 2009-05-18 13:30:48 UTC (rev 10926)
@@ -915,6 +915,10 @@
<filterset refid="project"/>
<filterset refid="jdbc"/>
</copy>
+ <replace file="${project.home}/resources/META-INF/persistence-dev.xml">
+ <replacefilter token="org.hibernate.transaction.JBossTransactionManagerLookup" value="@transactionManagerLookupClass@"/>
+ <replacefilter token="<jta-data-source>java:/" value="<jta-data-source>"/>
+ </replace>
<replace file="${project.home}/resources/WEB-INF/components.xml">
<replacefilter token="java:/${project.name}EntityManagerFactory" value="@puJndiName@"/>
</replace>
14 years, 11 months
Seam SVN: r10925 - in modules/trunk/security/src/main/java/org/jboss/seam/security: permission and 1 other directory.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-05-18 04:49:55 -0400 (Mon, 18 May 2009)
New Revision: 10925
Added:
modules/trunk/security/src/main/java/org/jboss/seam/security/management/IdentityStoreEntityClasses.java
Modified:
modules/trunk/security/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java
modules/trunk/security/src/main/java/org/jboss/seam/security/management/JpaIdentityStoreConfig.java
modules/trunk/security/src/main/java/org/jboss/seam/security/permission/JpaPermissionStore.java
Log:
some hackish configuration stuff
Added: modules/trunk/security/src/main/java/org/jboss/seam/security/management/IdentityStoreEntityClasses.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/management/IdentityStoreEntityClasses.java (rev 0)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/management/IdentityStoreEntityClasses.java 2009-05-18 08:49:55 UTC (rev 10925)
@@ -0,0 +1,16 @@
+package org.jboss.seam.security.management;
+
+import javax.context.ApplicationScoped;
+
+/**
+ * FIXME - a hack until we get some proper bean configuration
+ *
+ * @author Shane Bryzak
+ *
+ */
+@ApplicationScoped
+public interface IdentityStoreEntityClasses
+{
+ Class<?> getUserEntityClass();
+ Class<?> getRoleEntityClass();
+}
Modified: modules/trunk/security/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java 2009-05-18 08:49:13 UTC (rev 10924)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/management/JpaIdentityStore.java 2009-05-18 08:49:55 UTC (rev 10925)
@@ -11,7 +11,6 @@
import java.util.List;
import java.util.Set;
-import javax.annotation.Named;
import javax.context.RequestScoped;
import javax.inject.Current;
import javax.inject.Initializer;
@@ -35,7 +34,6 @@
*
* @author Shane Bryzak
*/
-@Named("identityStore")
@RequestScoped
public class JpaIdentityStore implements IdentityStore, Serializable
{
@@ -46,7 +44,7 @@
protected FeatureSet featureSet;
@PersistenceContext EntityManager entityManager;
-
+
JpaIdentityStoreConfig config;
Manager manager;
@@ -77,7 +75,7 @@
featureSet.enableAll();
}
- if (config.userEntityClass == null)
+ if (config.getUserEntityClass() == null)
{
log.error("Error in JpaIdentityStore configuration - userClass must be configured.");
return;
@@ -88,7 +86,7 @@
{
try
{
- if (config.userEntityClass == null)
+ if (config.getUserEntityClass() == null)
{
throw new IdentityManagementException("Could not create account, userClass not set");
}
@@ -98,21 +96,21 @@
throw new IdentityManagementException("Could not create account, already exists");
}
- Object user = config.userEntityClass.newInstance();
+ Object user = config.getUserEntityClass().newInstance();
- config.userPrincipalProperty.setValue(user, username);
+ config.getUserPrincipalProperty().setValue(user, username);
- if (config.userFirstNameProperty.isSet()) config.userFirstNameProperty.setValue(user, firstname);
- if (config.userLastNameProperty.isSet()) config.userLastNameProperty.setValue(user, lastname);
+ if (config.getUserFirstNameProperty().isSet()) config.getUserFirstNameProperty().setValue(user, firstname);
+ if (config.getUserLastNameProperty().isSet()) config.getUserLastNameProperty().setValue(user, lastname);
if (password == null)
{
- if (config.userEnabledProperty.isSet()) config.userEnabledProperty.setValue(user, false);
+ if (config.getUserEnabledProperty().isSet()) config.getUserEnabledProperty().setValue(user, false);
}
else
{
setUserPassword(user, password);
- if (config.userEnabledProperty.isSet()) config.userEnabledProperty.setValue(user, true);
+ if (config.getUserEnabledProperty().isSet()) config.getUserEnabledProperty().setValue(user, true);
}
manager.fireEvent(new PrePersistUserEvent(user));
@@ -138,15 +136,15 @@
protected void setUserPassword(Object user, String password)
{
- if (config.passwordSaltProperty.isSet())
+ if (config.getPasswordSaltProperty().isSet())
{
byte[] salt = generateUserSalt(user);
- config.passwordSaltProperty.setValue(user, BinTools.bin2hex(salt));
- config.userPasswordProperty.setValue(user, generatePasswordHash(password, salt));
+ config.getPasswordSaltProperty().setValue(user, BinTools.bin2hex(salt));
+ config.getUserPasswordProperty().setValue(user, generatePasswordHash(password, salt));
}
else
{
- config.userPasswordProperty.setValue(user, generatePasswordHash(password, getUserAccountSalt(user)));
+ config.getUserPasswordProperty().setValue(user, generatePasswordHash(password, getUserAccountSalt(user)));
}
}
@@ -157,7 +155,7 @@
protected String getUserAccountSalt(Object user)
{
// By default, we'll use the user's username as the password salt
- return config.userPrincipalProperty.getValue(user).toString();
+ return config.getUserPrincipalProperty().getValue(user).toString();
}
/**
@@ -188,12 +186,12 @@
@SuppressWarnings("unchecked")
public boolean grantRole(String username, String role)
{
- if (config.roleEntityClass == null) return false;
+ if (config.getRoleEntityClass() == null) return false;
Object user = lookupUser(username);
if (user == null)
{
- if (config.userPasswordProperty.isSet())
+ if (config.getUserPasswordProperty().isSet())
{
// If no userPasswordProperty is set, it means that authentication is being performed
// by another identity store and this one is just managing roles
@@ -220,10 +218,10 @@
throw new NoSuchRoleException("Could not grant role, role '" + role + "' does not exist");
}
- Collection<?> userRoles = (Collection<?>) config.userRolesProperty.getValue(user);
+ Collection<?> userRoles = (Collection<?>) config.getUserRolesProperty().getValue(user);
if (userRoles == null)
{
- Type propType = config.userRolesProperty.getPropertyType();
+ Type propType = config.getUserRolesProperty().getPropertyType();
Class<?> collectionType;
if (propType instanceof Class && Collection.class.isAssignableFrom((Class<?>) propType))
@@ -250,30 +248,30 @@
userRoles = new ArrayList<Object>();
}
- config.userRolesProperty.setValue(user, userRoles);
+ config.getUserRolesProperty().setValue(user, userRoles);
}
- else if (((Collection<?>) config.userRolesProperty.getValue(user)).contains(roleToGrant))
+ else if (((Collection<?>) config.getUserRolesProperty().getValue(user)).contains(roleToGrant))
{
return false;
}
- if (config.xrefEntityClass == null)
+ if (config.getXrefEntityClass() == null)
{
// If this is a Many-To-Many relationship, simply add the role
- ((Collection<Object>) config.userRolesProperty.getValue(user)).add(roleToGrant);
+ ((Collection<Object>) config.getUserRolesProperty().getValue(user)).add(roleToGrant);
}
else
{
// Otherwise we need to insert a cross-reference entity instance
try
{
- Object xref = config.xrefEntityClass.newInstance();
- config.xrefUserProperty.setValue(xref, user);
- config.xrefRoleProperty.setValue(xref, roleToGrant);
+ Object xref = config.getXrefEntityClass().newInstance();
+ config.getXrefUserProperty().setValue(xref, user);
+ config.getXrefRoleProperty().setValue(xref, roleToGrant);
manager.fireEvent(new PrePersistUserRoleEvent(xref));
- ((Collection<Object>) config.userRolesProperty.getValue(user)).add(entityManager.merge(xref));
+ ((Collection<Object>) config.getUserRolesProperty().getValue(user)).add(entityManager.merge(xref));
}
catch (Exception ex)
{
@@ -300,17 +298,17 @@
boolean success = false;
- if (config.xrefEntityClass == null)
+ if (config.getXrefEntityClass() == null)
{
- success = ((Collection<?>) config.userRolesProperty.getValue(user)).remove(roleToRevoke);
+ success = ((Collection<?>) config.getUserRolesProperty().getValue(user)).remove(roleToRevoke);
}
else
{
- Collection<?> roles = ((Collection<?>) config.userRolesProperty.getValue(user));
+ Collection<?> roles = ((Collection<?>) config.getUserRolesProperty().getValue(user));
for (Object xref : roles)
{
- if (config.xrefRoleProperty.getValue(xref).equals(roleToRevoke))
+ if (config.getXrefRoleProperty().getValue(xref).equals(roleToRevoke))
{
success = roles.remove(xref);
break;
@@ -324,7 +322,7 @@
@SuppressWarnings("unchecked")
public boolean addRoleToGroup(String role, String group)
{
- if (!config.roleGroupsProperty.isSet()) return false;
+ if (!config.getRoleGroupsProperty().isSet()) return false;
Object targetRole = lookupRole(role);
if (targetRole == null)
@@ -338,14 +336,14 @@
throw new NoSuchRoleException("Could not grant role, group '" + group + "' does not exist");
}
- Collection<?> roleGroups = (Collection<?>) config.roleGroupsProperty.getValue(targetRole);
+ Collection<?> roleGroups = (Collection<?>) config.getRoleGroupsProperty().getValue(targetRole);
if (roleGroups == null)
{
// This should either be a Set, or a List...
Class<?> rawType = null;
- if (config.roleGroupsProperty.getPropertyType() instanceof ParameterizedType)
+ if (config.getRoleGroupsProperty().getPropertyType() instanceof ParameterizedType)
{
- rawType = (Class<?>) ((ParameterizedType) config.roleGroupsProperty.getPropertyType()).getRawType();
+ rawType = (Class<?>) ((ParameterizedType) config.getRoleGroupsProperty().getPropertyType()).getRawType();
}
else
{
@@ -361,21 +359,21 @@
roleGroups = new ArrayList<Object>();
}
- config.roleGroupsProperty.setValue(targetRole, roleGroups);
+ config.getRoleGroupsProperty().setValue(targetRole, roleGroups);
}
- else if (((Collection<?>) config.roleGroupsProperty.getValue(targetRole)).contains(targetGroup))
+ else if (((Collection<?>) config.getRoleGroupsProperty().getValue(targetRole)).contains(targetGroup))
{
return false;
}
- ((Collection<Object>) config.roleGroupsProperty.getValue(targetRole)).add(targetGroup);
+ ((Collection<Object>) config.getRoleGroupsProperty().getValue(targetRole)).add(targetGroup);
return true;
}
public boolean removeRoleFromGroup(String role, String group)
{
- if (!config.roleGroupsProperty.isSet()) return false;
+ if (!config.getRoleGroupsProperty().isSet()) return false;
Object roleToRemove = lookupRole(role);
if (role == null)
@@ -389,7 +387,7 @@
throw new NoSuchRoleException("Could not remove role from group, no such group '" + group + "'");
}
- boolean success = ((Collection<?>) config.roleGroupsProperty.getValue(roleToRemove)).remove(targetGroup);
+ boolean success = ((Collection<?>) config.getRoleGroupsProperty().getValue(roleToRemove)).remove(targetGroup);
return success;
}
@@ -398,7 +396,7 @@
{
try
{
- if (config.roleEntityClass == null)
+ if (config.getRoleEntityClass() == null)
{
throw new IdentityManagementException("Could not create role, roleClass not set");
}
@@ -408,8 +406,8 @@
throw new IdentityManagementException("Could not create role, already exists");
}
- Object instance = config.roleEntityClass.newInstance();
- config.roleNameProperty.setValue(instance, role);
+ Object instance = config.getRoleEntityClass().newInstance();
+ config.getRoleNameProperty().setValue(instance, role);
entityManager.persist(instance);
return true;
@@ -435,9 +433,9 @@
throw new NoSuchRoleException("Could not delete role, role '" + role + "' does not exist");
}
- if (config.xrefEntityClass != null)
+ if (config.getXrefEntityClass() != null)
{
- entityManager.createQuery("delete " + config.xrefEntityClass.getName() + " where role = :role")
+ entityManager.createQuery("delete " + config.getXrefEntityClass().getName() + " where role = :role")
.setParameter("role", roleToDelete)
.executeUpdate();
}
@@ -462,10 +460,10 @@
public boolean enableUser(String name)
{
- if (!config.userEnabledProperty.isSet())
+ if (!config.getUserEnabledProperty().isSet())
{
log.debug("Can not enable user, no @UserEnabled property configured in userClass " +
- config.userEntityClass.getName());
+ config.getUserEntityClass().getName());
return false;
}
@@ -476,21 +474,21 @@
}
// Can't enable an already-enabled user, return false
- if (((Boolean) config.userEnabledProperty.getValue(user)) == true)
+ if (((Boolean) config.getUserEnabledProperty().getValue(user)) == true)
{
return false;
}
- config.userEnabledProperty.setValue(user, true);
+ config.getUserEnabledProperty().setValue(user, true);
return true;
}
public boolean disableUser(String name)
{
- if (!config.userEnabledProperty.isSet())
+ if (!config.getUserEnabledProperty().isSet())
{
log.debug("Can not disable user, no @UserEnabled property configured in userClass " +
- config.userEntityClass.getName());
+ config.getUserEntityClass().getName());
return false;
}
@@ -501,12 +499,12 @@
}
// Can't disable an already-disabled user, return false
- if (((Boolean) config.userEnabledProperty.getValue(user)) == false)
+ if (((Boolean) config.getUserEnabledProperty().getValue(user)) == false)
{
return false;
}
- config.userEnabledProperty.setValue(user, false);
+ config.getUserEnabledProperty().setValue(user, false);
return true;
}
@@ -536,8 +534,8 @@
public boolean isUserEnabled(String name)
{
Object user = lookupUser(name);
- return user != null && (!config.userEnabledProperty.isSet() ||
- (((Boolean) config.userEnabledProperty.getValue(user))) == true);
+ return user != null && (!config.getUserEnabledProperty().isSet() ||
+ (((Boolean) config.getUserEnabledProperty().getValue(user))) == true);
}
public List<String> getGrantedRoles(String name)
@@ -550,20 +548,20 @@
List<String> roles = new ArrayList<String>();
- Collection<?> userRoles = (Collection<?>) config.userRolesProperty.getValue(user);
+ Collection<?> userRoles = (Collection<?>) config.getUserRolesProperty().getValue(user);
if (userRoles != null)
{
for (Object role : userRoles)
{
- if (config.xrefEntityClass == null)
+ if (config.getXrefEntityClass() == null)
{
- roles.add((String) config.roleNameProperty.getValue(role));
+ roles.add((String) config.getRoleNameProperty().getValue(role));
}
else
{
- Object xref = config.roleNameProperty.getValue(role);
- Object userRole = config.xrefRoleProperty.getValue(xref);
- roles.add((String) config.roleNameProperty.getValue(userRole));
+ Object xref = config.getRoleNameProperty().getValue(role);
+ Object userRole = config.getXrefRoleProperty().getValue(xref);
+ roles.add((String) config.getRoleNameProperty().getValue(userRole));
}
}
}
@@ -581,14 +579,14 @@
List<String> groups = new ArrayList<String>();
- if (config.roleGroupsProperty.isSet())
+ if (config.getRoleGroupsProperty().isSet())
{
- Collection<?> roleGroups = (Collection<?>) config.roleGroupsProperty.getValue(role);
+ Collection<?> roleGroups = (Collection<?>) config.getRoleGroupsProperty().getValue(role);
if (roleGroups != null)
{
for (Object group : roleGroups)
{
- groups.add((String) config.roleNameProperty.getValue(group));
+ groups.add((String) config.getRoleNameProperty().getValue(group));
}
}
}
@@ -605,12 +603,12 @@
}
Set<String> roles = new HashSet<String>();
- Collection<?> userRoles = (Collection<?>) config.userRolesProperty.getValue(user);
+ Collection<?> userRoles = (Collection<?>) config.getUserRolesProperty().getValue(user);
if (userRoles != null)
{
for (Object role : userRoles)
{
- addRoleAndMemberships((String) config.roleNameProperty.getValue(role), roles);
+ addRoleAndMemberships((String) config.getRoleNameProperty().getValue(role), roles);
}
}
@@ -623,15 +621,15 @@
{
Object instance = lookupRole(role);
- if (config.roleGroupsProperty.isSet())
+ if (config.getRoleGroupsProperty().isSet())
{
- Collection<?> groups = (Collection<?>) config.roleGroupsProperty.getValue(instance);
+ Collection<?> groups = (Collection<?>) config.getRoleGroupsProperty().getValue(instance);
if (groups != null)
{
for (Object group : groups)
{
- addRoleAndMemberships((String) config.roleNameProperty.getValue(group), roles);
+ addRoleAndMemberships((String) config.getRoleNameProperty().getValue(group), roles);
}
}
}
@@ -640,12 +638,12 @@
public String generatePasswordHash(String password, byte[] salt)
{
- if (config.passwordSaltProperty.isSet())
+ if (config.getPasswordSaltProperty().isSet())
{
try
{
return getPasswordHash().createPasswordKey(password.toCharArray(), salt,
- config.userPasswordProperty.getAnnotation().iterations());
+ config.getUserPasswordProperty().getAnnotation().iterations());
}
catch (GeneralSecurityException ex)
{
@@ -665,7 +663,7 @@
@Deprecated
protected String generatePasswordHash(String password, String salt)
{
- String algorithm = config.userPasswordProperty.getAnnotation().hash();
+ String algorithm = config.getUserPasswordProperty().getAnnotation().hash();
if (algorithm == null || "".equals(algorithm))
{
@@ -698,17 +696,17 @@
public boolean authenticate(String username, String password)
{
Object user = lookupUser(username);
- if (user == null || (config.userEnabledProperty.isSet() &&
- ((Boolean) config.userEnabledProperty.getValue(user) == false)))
+ if (user == null || (config.getUserEnabledProperty().isSet() &&
+ ((Boolean) config.getUserEnabledProperty().getValue(user) == false)))
{
return false;
}
String passwordHash = null;
- if (config.passwordSaltProperty.isSet())
+ if (config.getPasswordSaltProperty().isSet())
{
- String encodedSalt = (String) config.passwordSaltProperty.getValue(user);
+ String encodedSalt = (String) config.getPasswordSaltProperty().getValue(user);
if (encodedSalt == null)
{
throw new IdentityManagementException("A @PasswordSalt property was found on entity " + user +
@@ -723,7 +721,7 @@
}
- boolean success = passwordHash.equals(config.userPasswordProperty.getValue(user));
+ boolean success = passwordHash.equals(config.getUserPasswordProperty().getValue(user));
if (success)
{
@@ -738,8 +736,8 @@
try
{
Object user = entityManager.createQuery(
- "select u from " + config.userEntityClass.getName() + " u where " + config.userPrincipalProperty.getName() +
- " = :username")
+ "select u from " + config.getUserEntityClass().getName() + " u where " +
+ config.getUserPrincipalProperty().getName() + " = :username")
.setParameter("username", username)
.getSingleResult();
@@ -753,17 +751,17 @@
public String getUserName(Object user)
{
- return (String) config.userPrincipalProperty.getValue(user);
+ return (String) config.getUserPrincipalProperty().getValue(user);
}
public String getRoleName(Object role)
{
- return (String) config.roleNameProperty.getValue(role);
+ return (String) config.getRoleNameProperty().getValue(role);
}
public boolean isRoleConditional(String role)
{
- return config.roleConditionalProperty.isSet() ? (Boolean) config.roleConditionalProperty.getValue(
+ return config.getRoleConditionalProperty().isSet() ? (Boolean) config.getRoleConditionalProperty().getValue(
lookupRole(role)) : false;
}
@@ -772,7 +770,7 @@
try
{
Object value = entityManager.createQuery(
- "select r from " + config.roleEntityClass.getName() + " r where " + config.roleNameProperty.getName() +
+ "select r from " + config.getRoleEntityClass().getName() + " r where " + config.getRoleNameProperty().getName() +
" = :role")
.setParameter("role", role)
.getSingleResult();
@@ -789,7 +787,8 @@
public List<String> listUsers()
{
return (List<String>) entityManager.createQuery(
- "select u." + config.userPrincipalProperty.getName() + " from " + config.userEntityClass.getName() + " u")
+ "select u." + config.getUserPrincipalProperty().getName() + " from " +
+ config.getUserEntityClass().getName() + " u")
.getResultList();
}
@@ -797,8 +796,8 @@
public List<String> listUsers(String filter)
{
return (List<String>) entityManager.createQuery(
- "select u." + config.userPrincipalProperty.getName() + " from " + config.userEntityClass.getName() +
- " u where lower(" + config.userPrincipalProperty.getName() + ") like :username")
+ "select u." + config.getUserPrincipalProperty().getName() + " from " + config.getUserEntityClass().getName() +
+ " u where lower(" + config.getUserPrincipalProperty().getName() + ") like :username")
.setParameter("username", "%" + (filter != null ? filter.toLowerCase() : "") +
"%")
.getResultList();
@@ -808,8 +807,8 @@
public List<String> listRoles()
{
return (List<String>) entityManager.createQuery(
- "select r." + config.roleNameProperty.getName() + " from " +
- config.roleEntityClass.getName() + " r").getResultList();
+ "select r." + config.getRoleNameProperty().getName() + " from " +
+ config.getRoleEntityClass().getName() + " r").getResultList();
}
public List<Principal> listMembers(String role)
@@ -834,20 +833,20 @@
{
Object roleEntity = lookupRole(role);
- if (config.xrefEntityClass == null)
+ if (config.getXrefEntityClass() == null)
{
return (List<String>) entityManager.createQuery("select u." +
- config.userPrincipalProperty.getName() +
- " from " + config.userEntityClass.getName() + " u where :role member of u." +
- config.userRolesProperty.getName())
+ config.getUserPrincipalProperty().getName() +
+ " from " + config.getUserEntityClass().getName() + " u where :role member of u." +
+ config.getUserRolesProperty().getName())
.setParameter("role", roleEntity)
.getResultList();
}
else
{
List<?> xrefs = entityManager.createQuery("select x from " +
- config.xrefEntityClass.getName() + " x where x." +
- config.xrefRoleProperty.getName() + " = :role")
+ config.getXrefEntityClass().getName() + " x where x." +
+ config.getXrefRoleProperty().getName() + " = :role")
.setParameter("role", roleEntity)
.getResultList();
@@ -855,8 +854,8 @@
for (Object xref : xrefs)
{
- Object user = config.xrefUserProperty.getValue(xref);
- members.add(config.userPrincipalProperty.getValue(user).toString());
+ Object user = config.getXrefUserProperty().getValue(xref);
+ members.add(config.getUserPrincipalProperty().getValue(user).toString());
}
return members;
@@ -867,14 +866,14 @@
@SuppressWarnings("unchecked")
private List<String> listRoleMembers(String role)
{
- if (config.roleGroupsProperty.isSet())
+ if (config.getRoleGroupsProperty().isSet())
{
Object roleEntity = lookupRole(role);
return (List<String>) entityManager.createQuery("select r." +
- config.roleNameProperty.getName() +
- " from " + config.roleEntityClass.getName() + " r where :role member of r." +
- config.roleGroupsProperty.getName())
+ config.getRoleNameProperty().getName() +
+ " from " + config.getRoleEntityClass().getName() + " r where :role member of r." +
+ config.getRoleGroupsProperty().getName())
.setParameter("role", roleEntity)
.getResultList();
}
@@ -888,15 +887,15 @@
StringBuilder roleQuery = new StringBuilder();
roleQuery.append("select r.");
- roleQuery.append(config.roleNameProperty.getName());
+ roleQuery.append(config.getRoleNameProperty().getName());
roleQuery.append(" from ");
- roleQuery.append(config.roleEntityClass.getName());
+ roleQuery.append(config.getRoleEntityClass().getName());
roleQuery.append(" r");
- if (config.roleConditionalProperty.isSet())
+ if (config.getRoleConditionalProperty().isSet())
{
roleQuery.append(" where r.");
- roleQuery.append(config.roleConditionalProperty.getName());
+ roleQuery.append(config.getRoleConditionalProperty().getName());
roleQuery.append(" = false");
}
Modified: modules/trunk/security/src/main/java/org/jboss/seam/security/management/JpaIdentityStoreConfig.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/management/JpaIdentityStoreConfig.java 2009-05-18 08:49:13 UTC (rev 10924)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/management/JpaIdentityStoreConfig.java 2009-05-18 08:49:55 UTC (rev 10925)
@@ -5,6 +5,7 @@
import java.util.Collection;
import javax.context.ApplicationScoped;
+import javax.inject.Current;
import javax.inject.Initializer;
import org.jboss.seam.security.annotations.management.PasswordSalt;
@@ -28,55 +29,57 @@
@ApplicationScoped
public class JpaIdentityStoreConfig
{
- Class<?> userEntityClass;
- Class<?> roleEntityClass;
- Class<?> xrefEntityClass;
- TypedBeanProperty xrefUserProperty;
- TypedBeanProperty xrefRoleProperty;
+ private Class<?> userEntityClass;
+ private Class<?> roleEntityClass;
+ private Class<?> xrefEntityClass;
+ private TypedBeanProperty xrefUserProperty;
+ private TypedBeanProperty xrefRoleProperty;
- AnnotatedBeanProperty<UserPrincipal> userPrincipalProperty;
- AnnotatedBeanProperty<UserPassword> userPasswordProperty;
- AnnotatedBeanProperty<PasswordSalt> passwordSaltProperty;
- AnnotatedBeanProperty<UserRoles> userRolesProperty;
- AnnotatedBeanProperty<UserEnabled> userEnabledProperty;
- AnnotatedBeanProperty<UserFirstName> userFirstNameProperty;
- AnnotatedBeanProperty<UserLastName> userLastNameProperty;
- AnnotatedBeanProperty<RoleName> roleNameProperty;
- AnnotatedBeanProperty<RoleGroups> roleGroupsProperty;
- AnnotatedBeanProperty<RoleConditional> roleConditionalProperty;
+ private AnnotatedBeanProperty<UserPrincipal> userPrincipalProperty;
+ private AnnotatedBeanProperty<UserPassword> userPasswordProperty;
+ private AnnotatedBeanProperty<PasswordSalt> passwordSaltProperty;
+ private AnnotatedBeanProperty<UserRoles> userRolesProperty;
+ private AnnotatedBeanProperty<UserEnabled> userEnabledProperty;
+ private AnnotatedBeanProperty<UserFirstName> userFirstNameProperty;
+ private AnnotatedBeanProperty<UserLastName> userLastNameProperty;
+ private AnnotatedBeanProperty<RoleName> roleNameProperty;
+ private AnnotatedBeanProperty<RoleGroups> roleGroupsProperty;
+ private AnnotatedBeanProperty<RoleConditional> roleConditionalProperty;
+
+ @Current IdentityStoreEntityClasses entityClasses;
@Initializer
public void initProperties()
{
- userPrincipalProperty = new AnnotatedBeanProperty<UserPrincipal>(userEntityClass, UserPrincipal.class);
- userPasswordProperty = new AnnotatedBeanProperty<UserPassword>(userEntityClass, UserPassword.class);
- passwordSaltProperty = new AnnotatedBeanProperty<PasswordSalt>(userEntityClass, PasswordSalt.class);
- userRolesProperty = new AnnotatedBeanProperty<UserRoles>(userEntityClass, UserRoles.class);
- userEnabledProperty = new AnnotatedBeanProperty<UserEnabled>(userEntityClass, UserEnabled.class);
- userFirstNameProperty = new AnnotatedBeanProperty<UserFirstName>(userEntityClass, UserFirstName.class);
- userLastNameProperty = new AnnotatedBeanProperty<UserLastName>(userEntityClass, UserLastName.class);
+ userPrincipalProperty = new AnnotatedBeanProperty<UserPrincipal>(getUserEntityClass(), UserPrincipal.class);
+ userPasswordProperty = new AnnotatedBeanProperty<UserPassword>(getUserEntityClass(), UserPassword.class);
+ passwordSaltProperty = new AnnotatedBeanProperty<PasswordSalt>(getUserEntityClass(), PasswordSalt.class);
+ userRolesProperty = new AnnotatedBeanProperty<UserRoles>(getUserEntityClass(), UserRoles.class);
+ userEnabledProperty = new AnnotatedBeanProperty<UserEnabled>(getUserEntityClass(), UserEnabled.class);
+ userFirstNameProperty = new AnnotatedBeanProperty<UserFirstName>(getUserEntityClass(), UserFirstName.class);
+ userLastNameProperty = new AnnotatedBeanProperty<UserLastName>(getUserEntityClass(), UserLastName.class);
if (!userPrincipalProperty.isSet())
{
- throw new IdentityManagementException("Invalid userClass " + userEntityClass.getName() +
+ throw new IdentityManagementException("Invalid userClass " + getUserEntityClass().getName() +
" - required annotation @UserPrincipal not found on any Field or Method.");
}
if (!userRolesProperty.isSet())
{
- throw new IdentityManagementException("Invalid userClass " + userEntityClass.getName() +
+ throw new IdentityManagementException("Invalid userClass " + getUserEntityClass().getName() +
" - required annotation @UserRoles not found on any Field or Method.");
}
- if (roleEntityClass != null)
+ if (getRoleEntityClass() != null)
{
- roleNameProperty = new AnnotatedBeanProperty<RoleName>(roleEntityClass, RoleName.class);
- roleGroupsProperty = new AnnotatedBeanProperty<RoleGroups>(roleEntityClass, RoleGroups.class);
- roleConditionalProperty = new AnnotatedBeanProperty<RoleConditional>(roleEntityClass, RoleConditional.class);
+ roleNameProperty = new AnnotatedBeanProperty<RoleName>(getRoleEntityClass(), RoleName.class);
+ roleGroupsProperty = new AnnotatedBeanProperty<RoleGroups>(getRoleEntityClass(), RoleGroups.class);
+ roleConditionalProperty = new AnnotatedBeanProperty<RoleConditional>(getRoleEntityClass(), RoleConditional.class);
if (!roleNameProperty.isSet())
{
- throw new IdentityManagementException("Invalid roleClass " + roleEntityClass.getName() +
+ throw new IdentityManagementException("Invalid roleClass " + getRoleEntityClass().getName() +
" - required annotation @RoleName not found on any Field or Method.");
}
@@ -94,11 +97,11 @@
// If the @UserRoles property isn't a collection of <roleClass>, then assume the relationship
// is going through a cross-reference table
- if (!genType.equals(roleEntityClass))
+ if (!genType.equals(getRoleEntityClass()))
{
xrefEntityClass = (Class<?>) genType;
- xrefUserProperty = new TypedBeanProperty(xrefEntityClass, userEntityClass);
- xrefRoleProperty = new TypedBeanProperty(xrefEntityClass, roleEntityClass);
+ xrefUserProperty = new TypedBeanProperty(xrefEntityClass, getUserEntityClass());
+ xrefRoleProperty = new TypedBeanProperty(xrefEntityClass, getRoleEntityClass());
if (!xrefUserProperty.isSet())
{
@@ -118,6 +121,11 @@
public Class<?> getUserEntityClass()
{
+ if (userEntityClass == null)
+ {
+ userEntityClass = entityClasses.getUserEntityClass();
+ }
+
return userEntityClass;
}
@@ -128,6 +136,11 @@
public Class<?> getRoleEntityClass()
{
+ if (roleEntityClass == null)
+ {
+ roleEntityClass = entityClasses.getRoleEntityClass();
+ }
+
return roleEntityClass;
}
@@ -135,4 +148,62 @@
{
this.roleEntityClass = roleEntityClass;
}
+
+ public Class<?> getXrefEntityClass()
+ {
+ return xrefEntityClass;
+ }
+
+ public TypedBeanProperty getXrefUserProperty()
+ {
+ return xrefUserProperty;
+ }
+
+ public TypedBeanProperty getXrefRoleProperty()
+ {
+ return xrefRoleProperty;
+ }
+
+ public AnnotatedBeanProperty<UserPrincipal> getUserPrincipalProperty()
+ {
+ return userPrincipalProperty;
+ }
+
+ public AnnotatedBeanProperty<UserPassword> getUserPasswordProperty()
+ {
+ return userPasswordProperty;
+ }
+
+ public AnnotatedBeanProperty<PasswordSalt> getPasswordSaltProperty() {
+ return passwordSaltProperty;
+ }
+
+ public AnnotatedBeanProperty<UserRoles> getUserRolesProperty() {
+ return userRolesProperty;
+ }
+
+ public AnnotatedBeanProperty<UserEnabled> getUserEnabledProperty() {
+ return userEnabledProperty;
+ }
+
+ public AnnotatedBeanProperty<UserFirstName> getUserFirstNameProperty() {
+ return userFirstNameProperty;
+ }
+
+ public AnnotatedBeanProperty<UserLastName> getUserLastNameProperty() {
+ return userLastNameProperty;
+ }
+
+ public AnnotatedBeanProperty<RoleName> getRoleNameProperty() {
+ return roleNameProperty;
+ }
+
+ public AnnotatedBeanProperty<RoleGroups> getRoleGroupsProperty() {
+ return roleGroupsProperty;
+ }
+
+ public AnnotatedBeanProperty<RoleConditional> getRoleConditionalProperty() {
+ return roleConditionalProperty;
+ }
+
}
Modified: modules/trunk/security/src/main/java/org/jboss/seam/security/permission/JpaPermissionStore.java
===================================================================
--- modules/trunk/security/src/main/java/org/jboss/seam/security/permission/JpaPermissionStore.java 2009-05-18 08:49:13 UTC (rev 10924)
+++ modules/trunk/security/src/main/java/org/jboss/seam/security/permission/JpaPermissionStore.java 2009-05-18 08:49:55 UTC (rev 10925)
@@ -27,6 +27,7 @@
import org.jboss.seam.security.SimplePrincipal;
import org.jboss.seam.security.management.IdentityManager;
import org.jboss.seam.security.management.JpaIdentityStore;
+import org.jboss.seam.security.management.JpaIdentityStoreConfig;
import org.jboss.seam.security.permission.PermissionMetadata.ActionSet;
import org.jboss.seam.security.util.AnnotatedBeanProperty;
@@ -527,15 +528,16 @@
boolean recipientIsRole = recipient instanceof Role;
JpaIdentityStore identityStore = manager.getInstanceByType(JpaIdentityStore.class);
+ JpaIdentityStoreConfig config = manager.getInstanceByType(JpaIdentityStoreConfig.class);
if (identityStore != null)
{
if (recipientIsRole && roleProperty.isSet() &&
- roleProperty.getPropertyType().equals(identityStore.getRoleEntityClass()))
+ roleProperty.getPropertyType().equals(config.getRoleEntityClass()))
{
return identityStore.lookupRole(recipient.getName());
}
- else if (userProperty.getPropertyType().equals(identityStore.getUserEntityClass()))
+ else if (userProperty.getPropertyType().equals(config.getUserEntityClass()))
{
return identityStore.lookupUser(recipient.getName());
}
@@ -547,8 +549,10 @@
protected Principal resolvePrincipal(Object principal, boolean isUser)
{
identityManager.getRoleIdentityStore();
- JpaIdentityStore identityStore = null;
+ JpaIdentityStore identityStore = manager.getInstanceByType(JpaIdentityStore.class);
+ JpaIdentityStoreConfig config = manager.getInstanceByType(JpaIdentityStoreConfig.class);
+
if (principal instanceof String)
{
return isUser ? new SimplePrincipal((String) principal) : new Role((String) principal,
@@ -557,12 +561,12 @@
if (identityStore != null)
{
- if (isUser && identityStore.getUserEntityClass().isAssignableFrom(principal.getClass()))
+ if (isUser && config.getUserEntityClass().isAssignableFrom(principal.getClass()))
{
return new SimplePrincipal(identityStore.getUserName(principal));
}
- if (!isUser && identityStore.getRoleEntityClass().isAssignableFrom(principal.getClass()))
+ if (!isUser && config.getRoleEntityClass().isAssignableFrom(principal.getClass()))
{
String name = identityStore.getRoleName(principal);
return new Role(name, identityStore.isRoleConditional(name));
@@ -605,7 +609,7 @@
createPermissionQuery(null, targets, null, Discrimination.either) :
createPermissionQuery(target, null, null, Discrimination.either);
- List userPermissions = permissionQuery.getResultList();
+ List<?> userPermissions = permissionQuery.getResultList();
Map<String,Principal> principalCache = new HashMap<String,Principal>();
@@ -675,7 +679,7 @@
permissionQuery = targets != null ?
createPermissionQuery(null, targets, null, Discrimination.role) :
createPermissionQuery(target, null, null, Discrimination.role);
- List rolePermissions = permissionQuery.getResultList();
+ List<?> rolePermissions = permissionQuery.getResultList();
for (Object permission : rolePermissions)
{
@@ -752,22 +756,22 @@
return manager.getInstanceByType(EntityManager.class);
}
- public Class getUserPermissionClass()
+ public Class<?> getUserPermissionClass()
{
return userPermissionClass;
}
- public void setUserPermissionClass(Class userPermissionClass)
+ public void setUserPermissionClass(Class<?> userPermissionClass)
{
this.userPermissionClass = userPermissionClass;
}
- public Class getRolePermissionClass()
+ public Class<?> getRolePermissionClass()
{
return rolePermissionClass;
}
- public void setRolePermissionClass(Class rolePermissionClass)
+ public void setRolePermissionClass(Class<?> rolePermissionClass)
{
this.rolePermissionClass = rolePermissionClass;
}
14 years, 11 months
Seam SVN: r10924 - in examples/trunk/seamspace: ejb-jar/src/main/resources and 2 other directories.
by seam-commits@lists.jboss.org
Author: shane.bryzak(a)jboss.com
Date: 2009-05-18 04:49:13 -0400 (Mon, 18 May 2009)
New Revision: 10924
Added:
examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/EntityClassProducer.java
examples/trunk/seamspace/ejb-jar/src/main/resources/import.sql
Modified:
examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/ContentAction.java
examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/ContentServlet.java
examples/trunk/seamspace/war/src/main/webapp/WEB-INF/web.xml
examples/trunk/seamspace/war/src/main/webapp/home.xhtml
examples/trunk/seamspace/war/src/main/webapp/template.xhtml
Log:
get authentication working
Modified: examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/ContentAction.java
===================================================================
--- examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/ContentAction.java 2009-05-18 04:48:30 UTC (rev 10923)
+++ examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/ContentAction.java 2009-05-18 08:49:13 UTC (rev 10924)
@@ -2,7 +2,6 @@
import java.io.Serializable;
-import javax.annotation.Named;
import javax.inject.Current;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
@@ -10,7 +9,6 @@
import org.jboss.seam.example.seamspace.model.MemberImage;
import org.jboss.seam.security.Identity;
-@Named
public class ContentAction implements Serializable
{
private static final long serialVersionUID = -3028986030113894868L;
Modified: examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/ContentServlet.java
===================================================================
--- examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/ContentServlet.java 2009-05-18 04:48:30 UTC (rev 10923)
+++ examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/ContentServlet.java 2009-05-18 08:49:13 UTC (rev 10924)
@@ -27,8 +27,6 @@
public class ContentServlet extends HttpServlet
{
private static final long serialVersionUID = -8461940507242022217L;
-
- private static final String IMAGES_PATH = "/images";
@Current ContentAction contentAction;
@@ -66,75 +64,72 @@
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException
{
- if (IMAGES_PATH.equals(request.getPathInfo()))
+ String id = request.getParameter("id");
+ MemberImage mi = (id != null && !"".equals(id)) ?
+ contentAction.getImage(Integer.parseInt(id)) : null;
+
+ String contentType = null;
+ byte[] data = null;
+
+ if (mi != null && mi.getData() != null && mi.getData().length > 0)
{
- String id = request.getParameter("id");
- MemberImage mi = (id != null && !"".equals(id)) ?
- contentAction.getImage(Integer.parseInt(id)) : null;
-
- String contentType = null;
- byte[] data = null;
-
- if (mi != null && mi.getData() != null && mi.getData().length > 0)
+ contentType = mi.getContentType();
+ data = mi.getData();
+ }
+ else if (noImage != null)
+ {
+ contentType = "image/png";
+ data = noImage;
+ }
+
+ if (data != null)
+ {
+ response.setContentType(contentType);
+
+ boolean rescale = false;
+ int width = 0;
+ ImageIcon icon = null;
+
+ // Check if the image needs to be rescaled
+ if (request.getParameter("width") != null)
{
- contentType = mi.getContentType();
- data = mi.getData();
+ width = Math.min(MAX_IMAGE_WIDTH, Integer.parseInt(request
+ .getParameter("width")));
+ icon = new ImageIcon(data);
+ if (width > 0 && width != icon.getIconWidth())
+ rescale = true;
}
- else if (noImage != null)
+
+ // Rescale the image if required
+ if (rescale)
{
- contentType = "image/png";
- data = noImage;
+ double ratio = (double) width / icon.getIconWidth();
+ int height = (int) (icon.getIconHeight() * ratio);
+
+ int imageType = "image/png".equals(contentType) ?
+ BufferedImage.TYPE_INT_ARGB : BufferedImage.TYPE_INT_RGB;
+ BufferedImage bImg = new BufferedImage(width, height, imageType);
+ Graphics2D g2d = bImg.createGraphics();
+ g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
+ RenderingHints.VALUE_INTERPOLATION_BICUBIC);
+ g2d.drawImage(icon.getImage(), 0, 0, width, height, null);
+ g2d.dispose();
+
+ String formatName = "";
+ if (contentType != null && contentType.indexOf("png") != -1)
+ formatName = "png";
+ else if (contentType != null && (contentType.indexOf("jpg") != -1) ||
+ contentType.indexOf("jpeg") != -1)
+ formatName = "jpeg";
+
+ ImageIO.write(bImg, formatName, response.getOutputStream());
}
-
- if (data != null)
+ else
{
- response.setContentType(contentType);
-
- boolean rescale = false;
- int width = 0;
- ImageIcon icon = null;
-
- // Check if the image needs to be rescaled
- if (request.getParameter("width") != null)
- {
- width = Math.min(MAX_IMAGE_WIDTH, Integer.parseInt(request
- .getParameter("width")));
- icon = new ImageIcon(data);
- if (width > 0 && width != icon.getIconWidth())
- rescale = true;
- }
-
- // Rescale the image if required
- if (rescale)
- {
- double ratio = (double) width / icon.getIconWidth();
- int height = (int) (icon.getIconHeight() * ratio);
-
- int imageType = "image/png".equals(contentType) ?
- BufferedImage.TYPE_INT_ARGB : BufferedImage.TYPE_INT_RGB;
- BufferedImage bImg = new BufferedImage(width, height, imageType);
- Graphics2D g2d = bImg.createGraphics();
- g2d.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
- RenderingHints.VALUE_INTERPOLATION_BICUBIC);
- g2d.drawImage(icon.getImage(), 0, 0, width, height, null);
- g2d.dispose();
-
- String formatName = "";
- if (contentType != null && contentType.indexOf("png") != -1)
- formatName = "png";
- else if (contentType != null && (contentType.indexOf("jpg") != -1) ||
- contentType.indexOf("jpeg") != -1)
- formatName = "jpeg";
-
- ImageIO.write(bImg, formatName, response.getOutputStream());
- }
- else
- {
- response.getOutputStream().write(data);
- }
+ response.getOutputStream().write(data);
}
-
- response.getOutputStream().flush();
}
+
+ response.getOutputStream().flush();
}
}
Added: examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/EntityClassProducer.java
===================================================================
--- examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/EntityClassProducer.java (rev 0)
+++ examples/trunk/seamspace/ejb-jar/src/main/java/org/jboss/seam/example/seamspace/EntityClassProducer.java 2009-05-18 08:49:13 UTC (rev 10924)
@@ -0,0 +1,17 @@
+package org.jboss.seam.example.seamspace;
+
+import org.jboss.seam.example.seamspace.model.MemberAccount;
+import org.jboss.seam.example.seamspace.model.MemberRole;
+import org.jboss.seam.security.management.IdentityStoreEntityClasses;
+
+public class EntityClassProducer implements IdentityStoreEntityClasses
+{
+ public Class<?> getRoleEntityClass()
+ {
+ return MemberRole.class;
+ }
+ public Class<?> getUserEntityClass()
+ {
+ return MemberAccount.class;
+ }
+}
Added: examples/trunk/seamspace/ejb-jar/src/main/resources/import.sql
===================================================================
--- examples/trunk/seamspace/ejb-jar/src/main/resources/import.sql (rev 0)
+++ examples/trunk/seamspace/ejb-jar/src/main/resources/import.sql 2009-05-18 08:49:13 UTC (rev 10924)
@@ -0,0 +1,52 @@
+insert into Member (memberid, membername, firstname, lastname, email, tagline, gender, dob, location, membersince) values (1, 'Mr_Smiley', 'Mr', 'Smiley', 'smiley(a)nowhere.com', 'I smile because I care', 0, '1953-03-10', '', '2007-01-02')
+insert into Member (memberid, membername, firstname, lastname, email, tagline, gender, dob, location, membersince) values (2, 'duke', 'duke', 'McDuke', 'duke(a)sun.com', 'I love the smell of coffee', 0, '1995-01-01', '', '2007-01-04')
+insert into Member (memberid, membername, firstname, lastname, email, tagline, gender, dob, location, membersince) values (3, 'shadowman', 'shadow', 'man', 'shadowman(a)redhat.com', 'I''m wearing a hat', 0, '1999-01-01', '', '2007-01-05')
+insert into Member (memberid, membername, firstname, lastname, email, tagline, gender, dob, location, membersince) values (4, 'mona', 'mona', 'lisa', 'monalisa(a)louvre.fr', 'Some describe me as enigmatic', 1, '1503-07-01', '', '2007-01-06')
+
+insert into MemberRole (roleid, name, conditional) values (1, 'user', false);
+insert into MemberRole (roleid, name, conditional) values (2, 'admin', false);
+insert into MemberRole (roleid, name, conditional) values (3, 'friends', true);
+
+insert into MemberAccount (accountid, username, passwordhash, passwordsalt, enabled, member_id) values (1, 'demo', '70D33A98C7E76C7365A7C58F88CA8A89373B6EB5', 'C0FA5E59FC18E1E1', 1, 1);
+insert into MemberAccount (accountid, username, passwordhash, passwordsalt, enabled, member_id) values (2, 'duke', '8D18E5D7DB472FF8AA3E3984F16BFDDA2B265598', '576EF3D383B00897', 1, 2);
+insert into MemberAccount (accountid, username, passwordhash, passwordsalt, enabled, member_id) values (3, 'shadowman', '1D70EA4F262D46525F38DA0C1A130FFF1CA02149', '727D5C9995088913', 1, 3);
+insert into MemberAccount (accountid, username, passwordhash, passwordsalt, enabled, member_id) values (4, 'mona', 'CDF580AB2AFC6F7FBCF5A1F114E383DB0DF9E309', '7D804DD05067750C', 1, 4);
+
+insert into AccountMembership (accountid, memberof) values (1, 2);
+insert into AccountMembership (accountid, memberof) values (2, 1);
+insert into AccountMembership (accountid, memberof) values (3, 1);
+insert into AccountMembership (accountid, memberof) values (4, 1);
+
+insert into RoleGroup (roleid, memberof) values (2, 1);
+
+insert into MemberImage (imageid, member_id, contentType, data) values (1, 1, 'image/png', '89504E470D0A1A0A0000000D49484452000000AA000000990803000000884651B30000000467414D410000AFC837058AE90000001974455874536F6674776172650041646F626520496D616765526561647971C9653C00000300504C5445F6E555F5E664F8F9D8615D0B020101F3E433DAB920F7E874F8F8C8F8F270F7E984F8F4B8F8F398F8F3A0939218F2C903F8F8E8F8F380F8F4A8F8F168F8F390F8F378F1D615E9D368F8F388F8F160F8F4B05D5A45F7EA93F3F224F3D824F8F9D0F5E325F8F9B8F8F250F8F158E8C703E7E544FFFFFFF8F4C8F8F9C0F4E614DCCD2BF8F9B0E7E653F3F214F8F248E4C323F2DA33F0F100D2CB88E4C2137A782A808080E7E436B0AD6B8E894FF8F8A0EEDB7FF8F9A8E8E564A9A545E3D825F0D100E7D944F0F140D0CFC7E7DA342D2903A9A98BF6EAA3F8F998E5D516CCC9B0F8F140F0F148E3DA52B0AFA8E7D202E1C444CECE45DEC032F0EA00F0DA43908F73D4D16DE7E8D2F8FA90F0EA49F8F038E8E393F0E200F0F138EFDA00E7E300EEC913E6E424E3C856F8F4C0C1BC86FCFDF0F8EB00DDBD0AF8F988F0D209F0F108F8F100F4EAB236332AF0F050C2BE4CF2DB58FEFFFCF0EA40FDFEF7F0F2D8F8F4D0F0F280!
F8EA3EE6E6C6F8EB4CF8EB08F0F030F8E24AE5E4A2F8EF2EE8E575E8E6B3F0F078EFE249E7E984F0F088F8F108EFE13EF8F4D8474329F8F980F0F290F0EE70F0EE63F0F8E0F8E13EF0F2E0F0F268F0F2B0F0DA0AF8FA68F0F058F8FA58F0EB09F0F3B8F0F9C8F8FA50E7ED4595977AE7EAE2F8F8F0F8FA48F8FA401915019C9B52F8E208F8F978E5E917F8F970F0F3C8F8F938F2EBC596968EF8E200F0E109F0F098F0F2D0F0F2C0E7EE33E8EE54E8F185F0ECD5F0F8D8ECEE24E8EE71E8ED63F8DA00E8F2C2F0F2A0FBFAE7F8FA60F8D300F8DA0BF0F9E8F0F1E8F7FA29E8EEB3FCFEFDF0F858DAD8ACF0F0A8F8F3F0F8D30AF0F948F0F9C0F0ECE4E8EEA6ECCE23F0F9A8FCFAF0F0F9F0A3A06CF8FA00A09E91FBFEF70F0A09F8F8E0F8FCDFF8FCF0F8F8F8F9FCE8F8FCF8F8F4E0F8F4E8F0F890F0F8D0F0F898F0F888F0F570F0F878F0F868F0F560F0F8B8F0F800F0F8363E3D02E8F400F7FA11DDDF5EE8EED8DDDE37D9D9CB221F15F0F0F0BABBABDBDD94FDFDFEFEFEFFEBCC33F0FC50F0F8B0F0F8408D8D80908890FBFBF7F0F8A0B2AE1FB8BA3EEBCE46E9CD5BF068708C000027E94944415478DAD49D095C9357BAF04958B20BD9308440084B0904100A222188522DB160B16295A0288A2088524344CA52AC088892A2822B2D1AB54A5BD74ED599DA3A63B7D1DEB14E!
A7032FA66A6B97A9B4D63AB676C6B9DE56EF73CEFB2679134001BDF37DF380D4F90DEA
DFE73CFB5974F3F88F11378FB1FF2182501F19B6184D2693D168FF5FD4CF08B546A7D5EB73728AB1E468351AB5D25A68323EF2306484A888CFF69377DF05F0422BF3B30F05121977D54A46CAD4AB5341AE4E65AC6471157C915C4914D2FE62FF7E54879808B646FFE586231D6113C3C29A9A2636855132695222485898D9CC9588D444A1F1FF21AA11E993A999BDFA785458E2FCC308ACBCBC3CAD1C8BA1BCB2D2332868FE94D4D46BD7A6A6B0B8FC02E68318C383A19A98AA37571C3F82109BCA6B6B838343AAAADC9030B0B8B9D5D6D6B602B0E7A44993264E9CE86696E9ACA67F2BEA4DDBC26B0EACBC1A1576B8A6A6B2B20AF0C4623183C3E2B0A4F0813E59247055556D6B5313D0CE9F3495912CEA19A1218C08F5A79B9833C75C060669A8AA0AF1F313031A97C51272B9128944C1B50B8B858901B7B2B27246ECA4D4494DE6151AA6F1DF6800856AFD179B126B7263824342FC182C1697AB5028F8200A457AFA018140C0E74B2480AAA080198CDAFAFAAA5ACFA08829A991E606F908EC6044A8C6C202052BAA2331062954CCE1482124A58B2891CBE5A2741162C5023A9671855C16074CA11699AE2772B430337FD89A1D01AAB150CD179A37D5971BFCC034A552215771E04D20E4F1542A1E8F575050B075EB3F376EFCE8A38F1039202B24106F916E198C656ECB5A63E74!
7BC9C9AC850149C33FEDFA21A4FA8F52D9B320D864D7E2CAE502601752E91CB97204E159BADC45251111E1EAE561784871714F09600AE822F5120534866312028B4D6B64E9C7867991B4BC4040FBBF97F827A13DBE8AAE31D1DE586108654C6170844721E1081B0D96AB69249CA1AA5D2C15CC0E3C945D82014E90A6CB50CB765CB66CC884D9DB48C2BEA313D3254D8616AF584F68BB2C3873337B5B0C0D32165F2546AA4C9354CBAD840956C351680256905E948B7246DED8C496767DC59C6550F39740D0BD5C4E49B3B0E5F497B8F23E3233B0485224DF6D8C5091448552A20456650C05369343A64B9142CD8C18C198181917756EA08D3C3472DD473CC61619921EDB0F422B0CE82F08A8A35177A7C9010048199312A1B0B56EA871F6EDBB70F5B2ED832C0A60B8055C6C21E561B14E81B3929659DDAF49051C1F1A320B11BFC386B6507D2E54BC044D7ACB970E1A24F6767276665123D172ED050D978FD0FED43A805E8A7A0586406C02A447961597D6B5050606A64D46AA5E9A1A21AADFA6386CCE010B1542611E0A5672B7B488DFAD8967F0D928A0AA58D16FB1B5A7E64AD60AF28E4222380E02564B5B4B066B436C506A5A64EE4CA4D0F13D5AAFDAAACACCC0F481502E4F580C3ECA1833A504958C0A583CA4941A87ACCBA8AD5E2565F0F812035752A9777FBA1A19A880!
3C78E746CDAC041114A8E40C181887BA3B20743C56AE50A1B5829600448AF915393455
6E3C3412D545F3A1ED5F1DE06A91015F505C8EDC18FACCEA4242A4DA96CD7D5C7A4800A4D0DC08211AC34BBD53735C5A6463E9522B86F20180AAAD1AA5B71A4A3E3BDAF841250290F40C148AD202E4A6552A47663ED872AA250B5A83690281AB82D0C3082F249A99191299282DB0F8C5AA8D40A11E9DE6214F3514E420BDFDBDB6BA540095B4C2541696E5550E0B4FE544103AC5429038A45F5F724A860C008D4B7478E8ACDE77601D4A586CCCD400AEE04A068E13B9158298D1254F01F3A2A2E12157C015F281543E69AD11A943A2572E2E8825EE34851FF8A7EE5093E27AC3C66F3DEB5FC0F0A2A2AC048ADBD98F4CF7FFE3DA95382E8B1E57E27501BAA9D5423A2B1A6A32F9FCB567050290B790BB241E481AD85234535FD157EC85B0C31C17E1CA144C753123D84D5DADBDB498A8F5342453995F2A8F0704744A559AA4EA415690534D17E7E492694A2340B55ACAF6FEA538A7BF9D63D51DF353E62524ACC86603F944AE505CC1E2B22ED2503BF8FD519D49EFED934549E9D14D5005AAD0D351DA955FBF9BA7560AE52D06B6B6CA0EF94C8AB7CEB88DDCAA4BC6C2E8BF1E370D3C1A194E04E74549FFBA016B8A26A1DA8A4B97EFE395F815C0BAA9756CF4008B0A345A611A21A89CF8F676E0FE1C8043898621B75A0BA9232A970EA40E539913A50A966262707A280024CC00F!
B1C6064E99326D6541E1C8500BB5C73BCE6C6E17F2450515B0FA9491FA386BB51F29890A75AA13AA8E4445B07C3BAA04E22B4401B11F84AC26B081C83B50C08E04B550732CAAE31FED6BF9221E9B69EDFDF4D3F3E7FBA3320746553B506D4AB5A1EAED1D221299700F87034DA25B7D6B60E0D9C8A912A669F8A826CD97473ACE7CBD562B023B257A7B8114B362CC8BF0E14CEA28FF86804A61CA8A8BD7AE5D2B944A39805ADB1A783A3F726AFA8961A31A89B5656967DEFB82AFE1852BB1523F25512FDA954A76002E5D0A955081D5851422004AFF7ABD83548648D70A85528E991105A881F9F991A335A69BC34335296586BCCC903D393A35CA5088D4D5528983CB99C48DA7ADCB8937989F7DA83C148E528093EBDB8B5414F7C9565BE210A858B0484138E61670AD19B181F967A70D6CAE2EA8B429E809BDB83C2F582CD3AAD888944475B252623964AAE56397FECBBA7C16C1FC1D7B1B0D954EAAA132942BAA0C2A41076A8BD95C5F3BE3CED9D3F963B84AE370B46A524BABAA6242A41211C4536B67EF7984EAEC50D0A27CBFDEEAEF6179723D2896B90DAD3CDB29F4D3122A8EFB22CAF9158818969FAED5960DE67A68B9037DF3CFDE51140E03D548F01906684F8402502A9451E7B14B394729D0E9F7BFE97DD5C3E3FA2756EB412662C54EA576562A46B5E5285B9C225185!
5C072AB01A507005B54E5F166E1C3A6AA1A6C5501E02995F04E9B4B7F3FC00A8B0F8EB
ADEB7B6F747B78585EB52EFF1D53696BFD784EA436542D15FB257C72366403B5A38AABAA5A51703DBBE8E7D9D621A1E2BF1091B3292F4D2C940878EC1E1F1C5191F3BBE894580EA83F347B805EFFD5433C6B1B51A85C487524A9969A0FDA2C5528A4914AF77238E290AA4ACF58600D8DBC2BBF3954AD9A342D99B782A51201AA513ACFDBC2940395C0C204BD768205747B581E27BEFF0CA3AA5483A2920B5F5C2C9339BCDF8EBA97D3CEA8329437C59EF5CD8ABF33FBDCBD511D06625D77246DFB5B504EF12AD6F8748247F50E004A1C8418D0639DD50C26E0B1F409621F5E7E84AAA15B2AC45304AAD592594A02E9D449AB78F5F7022AC72F04A106FA9E0C8D1C5D601C22AAE658C78EF616BE08052AA84F7B517BE2E8A5AC881385FEEF97F780B93E761D6DD5F9FF406C53B20FA9551BD51A0D1A613AC5548C0A75BF40A7FBFC804E335BC05FB1B685868A45EC17526540E5A06FFC34857568A885FAE31DDBF7700572354A5314A8D54AD729CA51B3ACD6F5EB213CDC58EA6101D6279063A9792A15429593A80E52C8523A8540F3DCC25DEEEE4F3FFA9C40BF768F0B2966AD6D42AC6322193CE3506CD5A85C7524D30F2A3F2AFA53A4D61E1FBB43E1646AB53EF12F7FFFA5CDCD4B9109782CFD84493C7F48BD71A386522BADEFC3A80A9D6A61B3057DEFE4E65DDAE2142754B11!
86200781634DBB16721B6720B87826A151C2F7B4FCC47D5345DA9D61E6752A6F546B347B76DAF16C5AC170F32C3F16C0AB3DAFA3E448A52BF5EA05AD867FBFEC9BB246B6D2E8549DBC57B5B3688FDAA0C4DC8B3A6788DE699EE8F6A52AF8ACA7C4B2AE0152891A59E3F6F63B5A352F5D427CD24A203F769827988CD2351E5AEA85AD5A3FEF03DF817747B34CFCEA1A1EE1503EB1708B5CA505F0FCDCBA2E90AC2785F546B8EB9A36CAF4CA0C6CB0F71EA533AAA9DF48DE54BED94DD1EE49F7FFDE90AE5A18D83A00AE4FEB435983CB381A6544EBB582CDEB0C12F041CABBE2930B064D11846BAE9BE2940792C330D62AA4885961FA7A94FF180C26A5B7E8CFAC61BCB6F3C3E76AC7FF3D2A5D76D0016D0EB3EC85614AAC8195534CEE2615B06F8922492D1508154FCD5D780EA6730247AB695E47BDD492EBC1F6AA1EE481A38155FA76242A222532A0A5854870A0D3689BA7C790FB1E6D90B3DCFFEF0FE8D4F9EC6CC281724853FCF93BBA2625315F95BF0F253D22C90491DA60AEBDFBE01A1BA951912837CDB4AE2C72CB3DE07D5A8FE3271E75B29EB541BD9BFA172FFF997FED0D9EB3C9E224714E4FE4405DA9F40E5DFFBEF2FFC3829E9513519FA351AAA4A15680F48F412BDF651E733139647650E8DB68BFDDEF2030909090E8EF10456DFACD0E97264ACB707473569CD873!
3C45C81EA1D66EF1F9F1CEBFFDF8FA1A47AD1C74A9BF951ACB4490A359F60B3972C295
0DBEA7EB2A00254BD44B24EAF48EAB61B2A3282EE717CC7DA8B11E75B146AB96790EF94ACD0318ADBF460DF1FB5501F9597C69188366E63BEE4DF0D0BB6F4BF5F3ADFBBDE3EA07041653BA1AAD94A352FDD814A157F5A40D5CD6EF6A0A37A78EC9238A1BE6547455A9D9295356634714F0330122BA2766472243A35F3FB66D25FBA3FF93B425DDFD36FF0E318FB535DCA92251BE5F225B666CA3E4AD34AF47CCD8F931D8BDF8D8C364926759052CB0FA458ABF3DBB2B2F2A7390D30FAA1424DD59159265568D8C4275414F2587AA3F70FBD50E8F747653B76280A70E7A746DB82FD50F5395A81E8D16E3AAA0742E57058B4F547A448A931699E4141BE255953A63B652C57542364AA0E4388F0808AFD7DB3FDF77DF5BC0F0DD5D14DD348312ADEBE947F400E2828543ED47EEB24FA03CF7DDCED4CEAB14B46B75458FF90CD58A93195E541C8AFF2E397297F1A1CD5A46E88CA0C16E7BCA952FE61290E2DD7E1C7AB1721AA5EB82F2A9B6275460569E0F3D3D393BAE9B60A1FE3644EEB8F4849D48CBABAF96DBE2525F9D3C1026E0E865AA85915B6BD7D8FFE4D35D1EB6FFB9DBB5FEDF4B960754CA7075A7F357D3C4992EAC81695AFD737E8214A2775BB062B899352914B6D47A43119954128B296788F519C78E4A7818B40E32385FC948E1D66A156A37EE1A5276D79F3FA0FBDBF!
B15A8959F6413AE553D4184D5DE0984E3B2A3F11B5C58EAAE9755AFE6CDEC72EB63A79B69044F5F373B8542648466E651D1800425DA01CCC008C46AB24AA63BB58A6DB788838FF03558D788CEDEC5D0F4A25683AA58D7CD56A1AA8F38822DD860A05A06A5CB7073DB0762728A40ED210EC523131409A96919BEB191441A26A8C838E2CD4C223E5C110AAB6FE8EF8F4FC63FE285A5D1FFB52AF0FEAF409D7DD693AEA00D31434EDB5CDD1F407340BBB693E854C552FE5F4737E121569151940FE34BE69305493AAA5232D44C8D7B03F7B01FAD4C75E05D6B1FFE5034A454309D7996FB87D8E36E034C53E4995481AF4EB44B3FB3CE8163079E5658E1D35C4867A26332D2D23C3A6D5FC31B470E58A2A3703AA4CB0914D587FFFE7CE4FCF836B8DEDEDF4C1A8CB07402537FC074525C713EB7264FA063E0A01B46A25E1F217AEA83148AB69C800EA00D517A1D24A1617D442D1F1F2186855FEF40EA0F6BED489A280FFED4E88AA3D4C07AAD28EEA389BD07F9AE218FA026A4E8344B7D042AF6D77151F17F7473D93798B440D3A0916101A7F7770544154798C5826DAF8CE0BD6DF5B7B3B5F5A8A9CAA132AEBF54C82795F54B90BAA6DE893232B9649F4E9FE1647A44A98B9E78858DC0F35ED565A5A6E0642C52120F40E315804202451E5C162AE46B58FE85DFFFB3F747602AAFF7F!
5D5C7FA1A767CD9A81B627703A752695EB6C731FDB7C4A0F3D7FB1AC41F7BC9DD592F4
DCE77B8FB4D34971F08FB995762B2FB7AB0E0C00E500EF45D389412A2BA3461A66F0934A043CA50FDEA000AD7637775EB46FF75628D1076DBFDF354ED9767C1D864ACD7C4124FAD949166C00CDE366E748DBE9A465C16586B22AC38E8C6BE55D010101757511BE274F8256A7CF2E1C18D5A46B3718F0A4AAE2E21F51ED0FC9D563E9DFF17C9AD9D37FB7AFDF26FA12397D6BD23EF0C7A442D96A9DEE63F7C97DCDE366EA73F66C309BC56206AD9ECACC0C36245EC9CCCBEB3A551710D116B1DBBBC43B7ECC6C621054ED061A2AA8F5CF807A7D161D55790FD425B4982AE0F7475D9103BDA062365756BC67438AF96B3F3F86D856F993A83BF20E6F7FEBBDB08E989D01735F8B383D2CD44E94B01EB3A1BA287580FDFE7EA48EF5170A65C50DAB5F6F6890154B41A35FBF2536D3332A8A53E5897967A29E1A3F6AFCAFE53BE764854E98E0ED3D26793054BDD9100CA822848AFCFEEFFE605A4F5EA412AAE350C2885085B29C9CE215ABA47BDB916C3033C4CEA8699BD3366FDAD507E63CD93DF254D1DC880910589395F740E560D40B3844F9A0EA6AAC1DD599B4DF263A6D179DEFB2FE78E603A02BD6AEDD7315946A361F3773C47452404DDC7E6494858A6541D15959A0D6C151738E3BA1FAFC752C9AF10D865A30F07EBFC8D9A71CA82B5614AF5DB96AAD740F47CCE16CE0EC712!
8350685D4B4C4F66726E36102945DBFD4B59106A01E18B530078A95BD08957D01321441A0497FF7F53FFAF4B876A834D47B28D59954283DF6E5DA632D6BA5D216F39E3D624694935233D2D262362590C9ECBA47F7A8405F52ABAA9B03A34AA290ADF2452AE505E8FB5F207A6FA05FFB848F750D41ACA9703A3F45D57E05BC7E47135C94EA20FD0284C3C1CD3FADA2A20C1564B3D99DAA13BBBBDD2B8310EAA2C10CA03007A1CA6CA86F10D6C7E02F08C66A5DC37CC5D1A050658AEB26BAA69F52157452A1948351A986DA964EC9E507D0BCB49876777B89981014814280D7E8C1508BE9A804A0BE84FC6AE92CA8AB9EBD2FAAEEDE4A15DAE7A8B6D41F624FA819081582EA28AA96E9B68CAA8B980BB6EA957C5F5436B3A7877881B0F622BFF278D24A9AAA0D55ED5CA6D04614FD2CD5BE91669B4FB58BDB6D650A454AA2E6E5E55DD97EB58F6275CFDF3D670ED26A327B6054AB332A41BCD0F924EE587C888304731FFB5EA8BAFBA2E22FF6593AB0DA490115486B026EED49C0152D0A00738AE66254E5105081F48D177A1F5B8A2CE007E6B344B8D3094ADA569A9C36A2100D98FD49A50A855C210DD59651915233F230EAE1E360ACDD7D7DEEBF7846CF29CA220DC03860C7EA8ABADCFAC7BFE316FB45029DA01C16AAA41FAAD449A9B4E5B7A176EDFCD502A4BFA6469FFA6E5ED!
6DCD0FBDBAAD06E00CBAD3EC858BB3DFC6711FB680995DCF453F5DBEFA7D5540E5099C
3525903E8142BB52B2F1750E7678EEA8630B5FDD45FB2E71415CDDD8F51072D57A20C55212C8940C546136B1F6BCF85F54FE250F7E41B4CF63636B9874EDF4477EA509D399D35CAA119A9CDFD81B3AC0CBAA92B353575B9359E79354750A7386AFE3771A5D5BBDBDE4661D54B3118AA2EA5BE2A84211368D44AC2A7F3C21A6239F104CECACD2FA00DFF7BEFF7F727E5923BBE529683943EA3B0A1E676D5D4E482DCFA05FE2CCBAFDF2D2EADAEDE7D12A17A7BCD660ED605A4D45756892502CD87A0559F0BB3A0F59B454ED99E243EDBB6ED3EFBFDFD952AECB78BE692A71069DACE1D79E55D753535FF70873FA8AFE3BBC571D5D573E6BE0DA4F15EE983740146D52A84CAC55A257AAC6B7AD6302F8C2527F7DF13BFDB76BFFD7EBA47C964F45314F4E577CC28C8663AAD3CA63CA36BFED1C3C761FDBB471DFE76F1E2EA2D805AE20D5A5D621A0455DD10E659259609742A650F3AF6BB1CBCEB89A598F5C5EFF1D9847BECF76BFB8529E140A84E839F331919187547D7FC53B7C65BBA3D263F15306F0BC81C94AB42E3A729076B039592B044D02A5FAB41A86B7A7E032DB5F55FB8DCB9FE38B1EDDEFBFD5A814B392D1C54A9F6E47F2B63275454319E3BF3F2765C434E9570E5DBB82D5B22B26DA817066BAE99024065C80095D9A354327F83C67ED61F96E220D0FCECB67BEFF76B!
F9F753AA1329CEFEB73240D276D65C39BCE34C02DACFFCE55476292895445D94BF60B091C5BB26795462A59F50A2D754002AF12C5171F0E0724AAD1E370EDE7BBF5F3B408FD28FD451A66C870F841A9391D8752A60FEE6A7D0AE967B5D51766911851ABA68CC8241675646E5F144831B4B26D129994A2535A5B8F803B6D6EE66E521257B2B5BD56FBF5FE0DA4C0D86EA670B539BCAB0209F02D49A80E897CF5C45EE6FF9E5D4DCA2D2D2B8EC39A456BDB8E7061DB05B8F85190C52A14417CE24AFD18019ACB1BE4ACE449E561E52B3DF51FDA9FF7EBFE3A40FDF394B0D4C4A43455AED7AB9EB70C778F427B8474617815AE3905227784F58345D31E8D0F291C215516106B1542628A86023ADA21685C99CE58F4BB3EB8F33F7A9D9E86882EB7EFF1050D1869FDDF9112612849A917BF4D4D133BFF6A1DAEF97AE39A5A573E200B50D85AAF805A2C150DF859E1550191C9980C7B6A32A0F128F918DE4D227986C363AF0E1B2DF6F23D5BBD653B4FD7EA7804AA1A691A8353B3B9E72C74A4D3C95F597D2ECB8ECEC3925DE60AB5E33D5C641518D9A63D7CA21B5F2D1D95A1BEA67C4F7FF229B9EE66789F7B7F6DFEFA750F5FA7EEE6F476DA7B44A7A14897A2B0F0F5373CB83CD09B84C1DD5B53FBBB4B4318EF47FEF45D3934F18073DBB6254AF0A4B0CF6E3F245BCF00A8C0A617F!
DFC183B3A8ED16FFF795CA77FAA1F29D510720E5D09C1F82D47B58A757F26EA5E5E6D6
E56E372775A3D32F7DA9A7E635966683905175D1F425B7073F666324D685251A5C50C15CDFB871DD8237FCFD9F2D50F5DBEF1F022AA9555B3C2D3B83945A73250F4A9580DC1990A6D07992512F37663716656FF9761EA9D5F83BCCC17603FF4A0E83AF5586B014E8CC32690088F533E6F21BD4B983E647953CD7F57718C000962A75DA9DA6AA54A4D4BC2B355772EBEAEA70958AAABF2B718D8D73B2E31AE7D9A2EAE87337EF81FA88F58B6B95552C2E57AF2A40EA64E20B54E115AF54DCB0ED373C7E88ADFA001DF1D46A6DA7A7052EC31419AD45B5E77EDCABFA859405076F37844134ED4283F4A35DD77EE9C6EDB47B4744517563E3E2B8B83973779F0C0D9DB0689ADC742FAD3E6292D47B5631582C894E85EF50E2CB5EE1F0F1AC6D77F0FAC2E7D550F78B04DAFFA150F92E3D0AAA53B9745452A5246A704C624CB0A132F768DDCEBA9D5DF337FF6AC12EDB9778AAA8A8A871F162E45427013574D102A773AC4EA8EF6283D531122BDD185C894883D50AA8AF6054E513B65DF2EB8F2B79CF69340211757A9A3FE0DCC7D19F501E45C6AAE098AA8CEDDBD1156C58FBA0EDEDA3F0EF0A3D6A576351512990C66517CD3D791A50A727171AEF7D2044299BD80A6A55E06B75CA0A506AB8F295F0F043CA7D8FDBCED3343FAE66FFE947DB496FFD40633F29CDF9DBC5E8580238D46!
6726FA232A3B2127554B9A906BF51D73D4897EACA8E2B2A8D03C9CE7E0D525556E8A2694B4CF73B66239AEA09D6AAC0D7D5C84329EC2505EC258794C48BD7A9CD9CEB4FEF63BFF3276CAEF8983712011D554AEBFB40A9B48309C05AEE990B71DFB3BCEAADA9EEDDE4886A54EE965288FD24EAEEB9732740A4BACBBCFFE125565379157A8542CE2359C3D95BD5EC021E7BDB672F4EB66DE6FBBFBF4DFD4F0A55824ECFF2D3F9039372C4B6FD8990CD642FBD236367578D674670D4332429E834F5BB6C52A738A962FF9FA6B87DF37E47C2CE290C89E5E81ABD6809C91ACE2E50ABE1F37925662565E98BDB3692A8F8902779D54BD67FF9D1C1349BF891B3B40CE8FBF2B66F9E3ADEE281775C2CEE8721F6CF2BA248E7B4B54DC85AE4759777FFD36B461123D153CCE24A04F8B62AB47D6CF5C68D3CD556F53B6AE5E38EF35FFE7F83D0AAC517FD30EC8001152B959A5231C4D854336EEDDC79F8BDF667126C5B83EE5DA7B2B38BFED248A1CE2D393D21347EFAA3177FBA2FEA4D421616E6C60213A02E7FA3B60F55D4D0556DDDBAD07EB0C76372D2F36ACDEC035ABD449693236B28465712D0F509A74405A0B0F666B319E22AA3AA2A66C78E1DB7B6771CF962BC6D77D8D2D711BDB8148AD438ECFEB8A89A10EAE5E254839CB4348952A0BC02B5F2D12DE0021B2A16F5D68563BB6!
DBBBA16FF8FDF57A974073ED7E75C5EBDA2780516A1935ED1618F4D9B4220526DDA54E
F161C53595E6ED8F4F5D55F132C944E2DEE8947B7141551A8403AE7644949FE22AFE4577EBA3984F3AB4C4954981B34030A60E5915D3FC2E4A9E41FA8C064C7D1CE2D2E4D58A8D668D75DCEC9293E06BA85FF38400115A914BCA92CB32C78F3E6ED19B9199BDBF7AEBA9AD0673B6CD4DDF7CBCE80C510FBC150BF2151E79684FAC67B2D4877BD1E32F0B170936EE5D47A37066245AE85DB7E40DD28177DF08146B595FDB8EDFC05F6AF8485CF6974EB5E7FFDF5D50D4880942BC5AF8490C3A9CD219BB16C3264A4C56CDE9BF24C529F635BD87DEACE79DF940269751CD22AAEA930EA6C6248A782A1BE6AA80FABAA02D7C2B79679142ACAA650546DE46D7C22C1E2413B0EDAFCF18F1FE9F49FA391FAEA06590E6D8E4A4EFCCAA2A2369919511D6FED59F98CFB64C7B94CCBA8A853D18DB0F8800A76BA05934E28F106A5F6BF863DD8617B514A13AE0470C42251FF864FFBA291BFE639D52B9FF4398EA2200FF31FF79CE64D11A4AF75DCD5A05564A5B6911F8AFFE23D6B8552E1CC517D16C7AFB2B83F95990A9AC42E1517575ABA259B5653DF1C22AAB182D5E4099500A0A653A8BCBF913D152AFB342AF99227F02E343964463F2CCDFEE316FE28D069F539E85C2AA7BDBD9D3AEC09159554C89D397E57DF640BED4C605F42C7D1E8EFD0781207A9D2A2EA2DA8510D0D05D4690A!
D3D02F8648A6267A5621567425186BF543D50768F9E53A0D3A412357172C6CB67878381D9EB2F425248D7B7436BEA92E5C4B4D2C64B28699E313DC275BBA699CDD1E7DBFFEE3E5EFBE9907E9F43BF0288C5A847CCA1B0A15AFBB153787AA55C8AE978FA456B62E63488B256FE2774A541F6EA56A69F22AA248B4759B937BD9B69C2C93FDFD1392767D3C7EDCC7E3762525F9BB374FB6D0BF8D3C6435EADAAD97179399F41BFC01CE3F6F7F1B74D4D0FDDFAD18CE25A6C28F8E5F4B6CAD65985735E8D1F31A1A95FA6F24AAFD82E79B1B55EF274D763A9166B3876EDAF96B5B58A27D575F4264C7A9E86FE34A31E8B7DFD882FFDC9212DC52259FBF399CFB56CAD7AF4E0AAA724B61ADC8811A4B839EA2A06B15E5FC033A8DEAC78F9B9DF4752F21FF2296C9A39E0AFE47CDCB5B1A17DB504170F047738AD078AFD1E9A6615DB82BFCE78A899E9EF528C1CAA01AE09177289CBA29EDA5D5AB3FD2FD38CE7DB26520B0817EDE3DD97D7C7D484C5740F4962D8D5B16236DE2E5C7B39F93132640F107D17FCDCD61A11AAD1A46FDA449F50CD64A21BAC62CD7E944F67713C80665B55EABBFA4D7EA3E9ABD30C9DF39780D483EB92F61FC5351C13BEA8EBE1CDD185D3D07A12EC63E1557BA65FFFEB6D3135045B52079E0E783EE7539D4AA654C9C545FC55886328168097ABAC63E4FC3!
A850553534404A6DC8D1EBB43F8EDBD5D76719D00E502C85E0307E668ADFD765693501
01D18D8D1173AAA31793A8A89C2A02D292B74FA38A7A36F3E6F0AFDC5A0529133D5B6B97A14C802EC98B68CF51E02B7E02AD645D31AA52D616E7E45C7AF37F9E5B382EC1BDCF6271BA8161B1F4B98FFAF5AAF9EB4DDB77EC4CCBCB3BD5151111702A7A4B3519A470DD9FFDDA7EBCFDEF1D3F6D80EB4B43B9C8CCE44E9D14DB8A330148BAB356C96A5A9253BCEACB55202B5614E75CBA7CE9D281D9AB1F1D377E57524242425252D2AE5DE366CE5C756CC386E0CC5B69878F8246038E469C8A8EA86EACDEDD8851172FAECE2E7AEDB5B9E49062FA82F4774774E7FA26A19878D613B1E2B7B504A27411FE24515D36A685C2155FAEFA72C59797E1F3F20AD9E575AF7F79ECABAFBEFCEA8BAFCCE64D86AACCAAF25B57AED45C01D8E8882D5BB62CAE2649B75457BFF6DA9CB9AFFD7642E8E9455EA3E5E7467AE9BE8035313608589162F9E9F88227A555DA7CC23EF6E170BEE0D0C614EF6141CD5F157ED0EC56DE953C8C6AB351845A1D510D6D1FEE51A19F1A30A20EEDD98DDBF2959352A11A80EA15BDB5C417902768495474C7CF7679166DFCD04769A84C316FB29D4BCDC05D7F571AD66A7434E54CDF9496562352B4FA592469C503BC10522858762D28A8B2CA6D192A5F25E8CE9CC0F9EA240857662F52ED4728ECBB1308B5B2120DA772F36A6C4AC52A2D2D6DACAEDE1D81953!
A370BDAA99482DB37478E7A93A9989A3A29A8B516B10A65946629535DE7B83B0D0AB5F77EF6A16FB05B885B485515B9FC9575E8B41FA9D4C5B662AA7AF7EEDD27116A567CFCF499A2113FBB811F0633A9210C04C67AD6BA315A56715743630036ABA050D7AD73907238B6D6DF861A5C85AD34A40A0F547273EB024E1D8D8E8EFE962A53E2A0F8DFBDFBB7BFFD2D4A52F15E91CFA4171A1F0015BD0A58C15D163B05C52CC64A564B03F9C61E46BD74E9D2E5CBC532C7C01F38F7D2B6FCF0F1296AC31F16BF068C20C066A7C8A18A204861D2ACD04563EEDCE5163EF8C33B4AC9B249939A5AEBDD520056C85550A439924BE45304F6A68FBE3F05B818358624A550A3031A4BFF42AE7E7575F61C207DFBEDB7A198F29A962C62FEF4E0CF19190BE5C91353DB82EA97A1A8C5422F150269710E5E7B8C483B432166D8372882494C24680FBDAEE6E8D1E8C5A0D6461034469F370FA5A8B7BD4F43D7AFB8EFBB81437C24AA50B47262EA7CCFDADA5AE45CC08AA613329A99726CDECF4143143F3B6AA61D14A3824F21CE4628F8A1E8DBDF968548BD17C5DF492E78488F44A13BF8AC89918181ADAD6E5011AC6A20071332050EFFF695670DB0897E2B8D3C928E04152A688E829AE93920BB21F0A3419AD70285AAF0A1BD12662244C9137FCE0F84A01595D2D202391F2D790399AAA4F65!
B73039CF3BF959647911E4581EA5B0C5A04A914652844EAE5355AC11CC2137C4345359
A4EF01477CE9E4D8DADF49CE8C64861B500D4AA55A8C973A855ECBCE3439E9F855A2AB70640036A0290A19275D46B18D4DB1B55D2D3466B86F456E0305EB433128A657722A704050595A358C0309BCDA05D21582B8B0AAA78EC43230D8ED991792B039306D405603B8DC3BB52A0D2096F232B8596EFA995835728237E27D0D823624D4D9DD2B63B088A58B77A831BB0B6403CA0C23F57BA971C4F23D4EDC1F6235428F423D080886A88A4E04CFBDBDADA26204E6FC85077930B86F8FEE2B05E5F3416AAB85323A7F80605C6B6B6D6D6BBB99951ECA22629A055A7AB3358A924298AFC50F94557431EDD8F494B266052AF6977D395437D8975786F5A1A0B0901EBCECF67037D03CFC6B656CDA8A71E0506BE0DE20DF42A2538B88CD429891A5117111D1101E9BE0DFBD28409A731E9DD64F98921BF193BDC474D8D850502EE8C9FCF9E0D0C8A8D8D6D6D025A904DA4F8F931EC5B93E4A9340A3428222202D40984BF7D1BA551EFFCF8F8313FDF495E123E8C375847F054AC8948E7DEFD79CCD97CDFA0A0D8C0D8D87A30857A039210A0260B29AA9ACAADACF304370CDA1FB1BF6DFFDCB9E8A0375AF9D0F8455ED31770353DB787F376F4881EE035F5A48F5E30E6AC2F4850906713487D7D3DFAEA568B9E87AEA58ABECA204F0C1A848CB30D8AE7B92429ACFCF405C94BD6986E0EEB!
4F1D012A1A7C99948A94896723A74C99E21B084ED6143BA3A9B515CCA1094B6BAB67ABA727E284FFF364D0C9365FF02310D02A9A9D7A81DBA7FBDC1EAE8246FA02B389D0485853EF449E9D9235657F6020D8019619E47F3C01117D0682DE03DBD075A41274140502FEA2F8E977C09946F2C8F9033C176F62A673199013B2E6B6B5F90622390B9481A4A406228DFB96A00F2490404371F33C2D39BDC20426FAEEBBFF3E54FC2EA388CB98181939E5EC94FCFCD3F9A70116A218522510624892131D43098D8F8FC72B5F31D257E31FF0B97853A1559D9E7C17426D7EBE777E49BE6F7E49C9695FEF7CEF126FF8249D088750707908F7AF3CC87BF10FE1117E9355FD918CB5ECCECF6320DC8EC91F939F0FCCDEF0351FAB1294E935E6CE32165FAE3CF7D3833CC3FF30FEBD00A3D174EE62F82BE9E977172C98366DFAF4E963904090F79A3E7DDAB405A3472BD2D544E103FFEB060F03D5BE31C756C9450A8542865E0246CFC44BF8682F8938E14849C6FF4F508DF85F3A28F4F139015278EEDCB91327CEB9E8F28151FF73FEC590FF18F95F0106009BB82CA79ADF6F600000000049454E44AE426082');
+
+insert into MemberImage (imageid, member_id, contentType, data) values (2, 2, 'image/jpeg', 'FFD8FFE000104A46494600010200006400640000FFEC00114475636B79000100040000003C0000FFEE000E41646F62650064C000000001FFDB0084000604040405040605050609060506090B080606080B0C0A0A0B0A0A0C100C0C0C0C0C0C100C0E0F100F0E0C1313141413131C1B1B1B1C1F1F1F1F1F1F1F1F1F1F010707070D0C0D181010181A1511151A1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1FFFC000110800CE00AA03011100021101031101FFC400AB00010002020301010000000000000000000007080506010304020901010101000301010000000000000000000001020305060407100001030301040606070504070900000001000203110405062131120741516122130871813242141591A16272822316B15292A233D1833425C1D253732435554363A354647456171811010002020102030703050100000000000001021103043112410506617181B1C1223221D142F05191E15214FFDA000C03010002110311003F00B52808080808080808083E2E278608249E6788E189A5F2C8E346B5AD157389EA0020A3FACF9C79EC97350EB2C55CBE38B1B378786!
849219F0919A7039BD53ED2FF004F6234B91A2F56E3356E99B0CFE35D5B7BD8F88C676BA3906C922753DE638108CB368080808080808080808080808080808080808213F345CC2382D231E9BB3938725A803993169EF4766CFEA9FEF0F70765516150915377962E65FC83523B4B6425A62736F1F0A5C7BB15ED28DF4094774F6D11256ED104040404040404040404040404040404041D7737105B5BCB713BC45042C7492C8ED8D6B1A2AE713D400414179A1ADE7D6BADB239D7122D5EFF00071D19F72D6224443D2EF6CF69469AA20E5AF7B1CD7B1C58F610E63DA685AE06A083D8505E9E4973119ADF43DB5ECEF072F654B4CAB3A7C6634524A754ADA3BD35EA465BFA020202020202020202020202020202020847CD2F303E49A463D3367270E473F56CFC27BCCB267F50FF0078EA33D15458545457080824AE40F30BF46EBC83E2A5E0C365F86CF2153DD6171FC998FDC79DBF64942577D1910101010101010101010101010101075DC4F0DBC124F33C470C4D73E591C681AD68AB9C4F5008283734B5BCBAD35C64B3A49F857BFC1C7C6EF76D62EEC63B38B6BCF6946A1A9A02020115144177BCBFEBE1ABB405A8B9978F2D88A58E42A7BCEE06FE54A7EFB29EB0512525A20808080808080808080808080808219F341AF7E43A2060AD24E0C96A02613C2685968CA19DDF8AA!
19EB28B0A794A6C451010101049BE5F35E7E92E615AB2E64E1C566786C6F6A68D6B9EE
FC894FDD79A7A09425771191010101010101010101010101070E706B4924003692770414479D3AE4EB2E60E472313F8F1D6AEF82C60E8F02124718FF78FE27FAD1A868A8080808081EBA76A0BD5C8ED75FAC797B617D3BC3B25663E0B243A4CD08038CFFBC616BBD68CB7F4040404040404040404040404119F983D71FA539757BF0F27064F2FFE5F6343470F141F1641F722AEDEBA22C291014141B86E451010101010104CDE5775C7C8B5D3B0573270D86A16089A09EEB6EE2A984FE31C4CFA112570D1040404040404040404040402829BF99FD69F3DE609C3DBC9C563A7E3F87A0DC6E64A3A73E96F759EA45843C8A20FB8A09A5348D85DE80A65CFA78BB36FE159B7B9E96E26F8FB807A4853BA1D9D3C83953FC623DF30F97E32F982A6327D04157BA1C7B3C8F954FE19F7627EAF339AE69A38169EA3B157577A4D67168C4B8465DD697573677505DDABCC5736D23268241B0B648DC1CD23D0420FD03D01AB2DF5668FC567E0207C740D74CC1EE4CDEECACFC2F6908CB60404040404040404040404182D73A9EDB4B692CA67EE285B8FB77C91B0FBF29EEC4CFC4F2020FCF9BBBBB9BCBB9EF2E9E64B9B991F34F21DA5D248E2E79F5B8A34E941BDF2E794DA975A5D96E3EDC781111E3DCCC4B208B8B771B8024B8EFE16ED59CCF83BFE3F074F1EB1B795D67F1A78FC531BFC!
AAE4D9655873F01BB02AD88DBB9B157AB883DCEF5F0FA94ED7DFAFD4FAEBFA46BC53D931FB218CC622FF000F94BAC5E423F0AF6CE4314F1D6A0387511BC11B415997A8D3BABB6917AFE32F1A8E5754F6D0CEDE195A1C3AFA47AD5897CDC9E1EADF5EDD9113F3612FEC1F6CEA8ABA23B9DD5D856E272F09E69E537E2CE63EED73D27E92F22D3A8590F28BAD7827CA68DB993BB27F9863413EF0A32E183F95DF4A24ACCA2080808080808080808082B8F9BAD65C1698AD1F6EFEF5C3BE619003F7184B2061A75BB89DEA08B0AC88AF7626D84B3991E2AC8B6D3AC9DCB36977FE9FE0C6EDBDF6FC69F3F05D2E415CE0E4E5C63E1C7399F131193E651823C46DC39E6A5E37ED6D387B15AF47CFE7F5D9FF00AAD37CE27A7B9B7EA7D5B80D358E7DFE66F196B13012C6123C49081ECC6CF69CE3D8ACCBAEE371766FB76D233F2534D63A8A4D49AA3259C923F0BE3A632322DFC11801B1B49E9218D155C532FD3387C68D1AABAFFE618651F4883E658D92B1CC78AB5C2842B12E2DFA6BB6934B7EB12D66688C32BE376F69A7F62E487E61C9D13A765B5CF5ACE19AD0FAA2E34AEAEC56A082B5B0B86BE568D9C509EECACFC51B8855C0FD07B4BA82EED61BAB77892DEE18D96191BB9CC78E2691E9051976A02020202020202020E247B23639EF706B180B9CE3B000369250503E636A6BBD!
6DCC1CAE5ADE392E05DCE63C7C31B5D23FE1E11C1106B5A09DAC6F16C1D28D30B94D37
A87130413E571975610DD170B692E627C4242D00B8378C0AD2A83D3856816AE774B9E6BF405C76EAF73E9AAC471E67FBD996B5BCBCB493C5B49E5B7948A19217BA3753AAAD20A8EFEF4ADA316889F7B8B9BABABA97C5BA9A4B894EF925739EEFA5C49516B48AC622310EA46840404182CBB40BD27ADA095C95E8F01EA2AC472A71E3586D1A9B95995C1682C16B37DC32E31F9C0D0620C2D740E91A5EC0F2490E0E0D345A746B35E59B57FCFB96B6F6533F8EF70521B096BBCC43BF038FE03C3EA4494B28820202020202020208CFCC36B1FD35CB3C80864E0BECB531D6943DE1E303E2B87DD883BD74421117947D1DF159DC9EAA9D9F938D8C59D913BBC69C56470FBB1803F122CB73F3718192F3446332F1B4BBE557B49BECC772CE0E2FE36B07AD08562C1CC2924277D789BFB0AC5A1EBFD31C98C5F5CF5FCA3EACAAC3D6880808080835EBC749777C5B002F7BDC2385A3DE713C2D03D2572C43F36F36E4C6EE45AD1D3A47C176353F2E45F7244E8E6B01BBB3C5C2DB5D9522EAD236BD94FBCF653D6ABAC56CE41F34ECB40EA3BB7E5DB37C9F271362BAF047198A58DD58E52CAED0D0E7034DBB516573B0F99C56671D064B15751DE585CB43E1B885C1CD703E8E91D20ED08CBD88080808080808315A9F53E134CE16E3339ABA6DAD85B0ABDEEF69CEF758C6EF73DDD0D082967!
38B9BD91E6265A179B7F83C363CBC63AD2B590F1D38A494EEE37068D8360FAD1A885B0E4AE90FD29CB7C463646705E4B1FC65F6CA1F1EE3BEE07EE8219EA465B26A8D3B61A8F4FE4307906F159E4217412D37B788775E3B58EA3876A0A0BAA34DE6B47EA7BAC364A3F0EF6C64A076D0D9633EC48DEB63DBB54C3E9E3722DA6F1B2BD63FAC3D36B7715CC7C6CD847B4CE90571CC3F47E0F3F5F269DD5EBE31E30EF51F688080831D93C8363698623590EC711EE8FED5BAC3CDF9D79BC6BACEAD73F7CF5F67FB493E5AF96936A4D5ACD437D09F91E0A41287387766BC6D1D1462BBC47EDBBD43A56DE1E571BA1114239C3A5FF4CF3273B8C63382D8DC1BAB41D1E0DC8F15A07DDE22DF52350F4728F9A394D05A960B96CB24982B87866571E092C746ED86563770919BC11BF774A12BC587CCE2B338E83258ABA8EF2C2E5BC50DC44EE26387F68E90768465ED40404041C3DED634B9C435AD15738EC000DE4A0873985E66349E9F91F8DD3ACFD459BA98DAD809F86649B8074ADA990D7DD8EBE908B8576E6D6539A592C8D95E6BC8E7B537911B8C5D8BDA238638EBC2782104F03BAF8FBFBAA8B0F3727B49FEAAE63E1B14F671DA326F8ABD1D1E05B7E6381FBC406FAD095F608C8823EE6E727F0BCC2C531B23C59E6ED1A463F241B52DAEDF0A503DA8DC7A3A37845CA9CEAED13AB!
744E54D966ED1F692827C0B96F7A0980F7A293D970ECDE3A4239B46FBEAB77527B6CF0
C19B70004D1D7ED3767D4B1357A5E37A9ED118DB5CFB63F67A8662C88DEE1E90A76BB5AFA878B3E368F83E5F9AB403BA1CE3D54A7ED4ED71ECF5271E23ED8B5BE18786E72F71282D652261EADF4F4AD455D1733D41BB6C76D7ECAFB3AFF009485CA9E436A7D6F3C57B7B1C98AD375064BE95BC324CDE96DB31DBEBFBE7BA3B569D0CCAE3E9CD3B87D3B86B6C3E1EDDB6B8FB467043137E92E713B5CE71DA49DE8CB25D082B079BFD37E1E4B05A92266CB88E4B0B9701EF447C58ABE96B9FF00422C208D3382BACFEA2C6E12D4567C8DCC76EDEC0F7779C7B1ADA928AB0392D17CC4E48DECF9FD1F70FCE68B73B8F258A9B6BE360DEE7B5A3A3FDAB06CF78511134F2EF999A635DE1C5FE167FCF8C0F8CC7C8409E071E87B7A5A7DD70D8511B62020D735C6BFD31A2B10EC9E76EC42C3516F6CCEF4F3BC7B91475AB8F6EE1D25056EBFD4FCD8E7A65E5C560E2762B4AC6E0276F139B03195D86EA668ACCFA6DF0DBB3B3A51537F2CB91DA3F42451DC4317CC339C34972B70D05E0F48859B444DF46DEB2865A779BA8B0E74462E6B81FE6ADBF0CC73852BC0E8DC6707ECF0B5BEBA210C27940D2DC30E6F54CCCDB23998EB379FDD6D25988F5960425645104041E3CB61F1597B292C329670DED9CA2925BCEC6C8C3EA703F4A0887527951E5E649EF9B1335DE12579AF870B84D00AF5!
472D5C3D4F45CB4ABAF273950F3F09AA20733DD135A3C3A9DA5B211F52197AB1FE4E7BE0E4B5417301F66DAD43491E97C8EFD886525E91F2F3CB2D352C7731E3DD93BE8E85B7591709C870E96C746C43F851329283400000001B0008080822EF327A7C65F94F9395ADACF8A7C57F1506DA44EE193FF0DEE45842FE52F1389BCD7B7F7B75DEBFC7597898F8CD29595FE1CB27A5AD207E24256DDEC6BD85AE68735C28E69DA083B0821115939B7CAFCEF2E7383989CBC7BED2CA3717E42D22156DB711EF1F0F73EDDFEF34FB3E8DC54AFC9FE7361B9838E31B836CB50DAB01BEC713B08DDE2C04ED7464FADBD3D04848D5088A276D25FF003139AB6F6BADF2AFB292F6EDD6B3CAE151070BC816B0B7D98EAE1C0D2765769DA8D2ECE9DD3986D3B88B7C461ED5967616CDE18E160E9E9738EF739DD24EF465934152FCDCEA3375ACF198463EB062ACCCD2B2BB04D74EAFD3E1C6DFA51613E72534DFE9EE58602C5CCE09E5B76DDDC8E9F16EBF39D5ED1C607A9125BC2020202020202020202020F0E77170E5B0B7F8B980315FDBCB6CFAEEA4AC2CFF004A0A63C83CA4DA6F9C78CB5B8259E3CB3E2AE41D9DE7D5ADAFF7AC6A352BB88CBE268229E27C3330490CAD2C9237005AE6B850B483BC10828DF3170F77CB0E6CDCB34EDD1B775948CBDC63D86A638E71C62178E9036B483BDA!
8D265FFF00531FFA23BFE47F31F7BFC6FEEFFEDFEDA2611F7999E5DCDA7359FEA3B263
9B8BCF3CCC5EDD9E0DEB76C8DAF471FB6DEDAF52109DB90DCCF6EB8D20C6DE480E7F15C36F926F4C829F97381D5201B7ED02889350518D63249AE79E37904678D992CC476109DFF93148DB7FA38584A34BCB1451C51B228DBC2C8DA1AC68E80D1401197D20202020202020202020201414779C7692E93E75652E6DC787E15F4396B6A6EFCC2DB83FCFC48D2EDD85E437B656F7909AC37313268CFD991A1CDFA8A32D039E1CD26681D2A66B52C7E7B224C18B85FB434D3BF339BD2D8C7D2EA0458569E54F2CF3DCD2D573E432D34D262A39BC5CDE52424C933DDB7C18DC7DF7F4FEE8F50455BFFD11A4BFE916FF00E07E53EC0FF03FEC3EEA32E35C68DC56B0D337B80C9B6B05D37F2E502AF8A56ED8E5657DE63B6FD4828BE33506A7D09A8F223079236D7D099F1D3DD42016C8C6BCB1C40783D2DE269A541469BE72EBCC76B3D3F34B6B9EBB97338C9A39046F9FF32E2198B0F86F6C8685CDE3A7135DD1B90C3CDE59F0CFCBF36ACEEA66F18C6C3717F293B68F23C36BBF8E642574D19101010101010101010101010555F37F85106A8C1E658DA36F6D24B6948E975BC9C4DAFE19BEA4586B79EE7E6667E5B69ED2B83B8BBC75F58C22DF317CC2D8CCCC89BC11361918E2F00B76B8EC286115DC5E5D5DCCD92F6796E5D500BE57B9EFE1276D0B89457E8468ED3F86C069BB0C5E1!
ED85AD8430B0B231B492E682E7BDDEF3DC76B894659A402828B73CB43CBA479837D6E6764F6D9473F2566184F1B229E579E0901DC5AE040EB08D423F41653C9DE1766A3CE39BBCC1630BA9D038A57D0FADB544959544101010101010101010101010413E6F31826D0B8AC8D2AEB2C8B595EA6CF13C1FAD811615311590D3CDC5BB3D8D19698DBE2CDD43F1D306971640240647708DA7BA83F44ECE7B5B8B5867B47B64B59636BE092320B1D1B802C7348D94237232EE418ACCEABD31846D73196B4C7750B99E388EDEA0E20A0A5FCFED438FCFF003432390C6DE477D8EF06DA2B6B881E248C8644388348FB64D51A847682E7F95FC3FCBF94F6770E6D1F93B9B8BB27A482FF00099FCB1028929691040404040404040404040404114F99CB413F28726FA54DB4F6B337B293B5A7F95C51614B1144174BCB2E69F90E53E3A09A40F9AC259ED5ADA82E11B2425951BE94750224A57A844504E6AE97D4780D71958F3B0CBE25CDD4F35A5E49C4E64F0BE42E63A390FB5469A115D88D435141C38D1A4F5041FA0BCB3C48C4F2FB4EE3C0E13063EDF8DBD4E7461EEFE671465B2A02020202020202020202020208F79FF109393FA98104F0DBB5E29F665614214611A107B70CCCCCB93B7B7C2FC41C9CCF0CB58ED1CF133A43B833808354165BF44F99EFFE4CCFF94707F51BFD7FFCBFB!
3FE23FF0050889C751E96D3FA9718FC6676C62BFB27ED314A3711B9CC70A398EED6905
1115E5BCA772D2EDFC7653E431849DAD8666C8DFA2664847D28B956CE61E96C560B98F90D358C7486C6D2E21B58E499C1F212F647C6E738068AF1B9DD08ABF36F136282389828D8DAD6B475068A0465F6808083C19AD4183C1D93AFB337F063ED1BBE6B891B1B6BD4388ED3D8104539DF355CB2C7BDF1D80BCCBBDBB9F6F0F8711F43E6319FE545C354BDF38D683FC169695E3A0DC5DB63FA991C9FB50C31A7CE266BC404699B6F0FDE06EA4AD7D3E1FF00A10C33388F3878791ED6E634E5C5B3491C52DACEC9C0EB3C2F6C250C24CD2FCF4E57EA2E08ED33715B5D3F75ADF56D64AF57E6518EFC2E28986F8D7B5ED0E690E6B855AE1B4107A8A0E501010681CFA95B1F28354171F6AD3807A5F231A3F6A10A73A4397BAAB5843927E9EB51792E2D8C96E2D83C3647364240F0C3A81C7BA7657D08D3BB03CADE60E6F303136782BC8EE8383677DCC2F822876ED74923C06803B36F520B75CA8E4A69CD0168276017FA826670DD65246ED15F6A381BFF0066CFACF4A339489C0D41CA020A3DCF88CE3F9D79B94B68D1736D74DED06189E7EB051A85DDB795935BC72B087324635ED70DC438541465D883A6F2F6D2CADA4BABC9E3B6B685A5D2CF338318D68E9739D4010401CCCF3538EB212E3743C6DBFBADAD7E5E607E198777E4B0D1D29ED346FA517086F0DA3F9AFCD9CA3B207E!
23242A43F2D7CF2CB58F6ED6B091C3B3F7626A2A63D3BE50707146C7EA3CDDC5DCC477E0B16B608C1EC7C8247BBD3408996E565E5939416C07898C9EEC8F7A7BA9CFD218E60FA90CB27FFD01C9FA53F4D5BFF1CDFEBA1960737E56B9577EC77C1C1758A97DD7DB4EF7B6BDAC9FC51F4510CA2DD55E5235659B5F2E9EC95BE5E21ECDBDC0F869E9D8497C6EFA5A865A3D96A4E7072B320CB57C97B8815D96178D32D9CA07EEB5C5D111DB1945582E55F993D3DAAA487139F6330B9D9086444BBFE16E1DD0237BBD871FDD77A8944C2674410429E6BF3ECB0E5CC38A0EA4F98BC8D9C3FF00756FF9CF3FC4D60F5A2C317E50308F834BE7334F6D3E6178CB788F5B2D586BFCD29FA1094FF44410101010564F367CBEB8F8AB5D71671992DCC6DB2CB068AF01693E04AEFB278B80F6D1161E8E507995D3D8CD2F6D82D64F9E2BAC734436D908E27CED96068A461E19C4F0F60EEEEA1086194D5DE6DF4D5A44E8B4AE3A7CA5D1146DCDD036F6E0F5F0FF0055DE8A350C214C967F9B1CDCCC7C27FC4E548702CC7DB34C765057602E15F0DBF7A435ED454D1CB7F2A98BB074592D6B337257628E6E2A0245AB0EFF00CD7EC74BE8D8DF4A2653EDA5ADB5A5BC76D6B0B20B789A19143134318D68DC1AD6D00088ED4040404041E1CCE13119AB0971F96B386FACA51492DE7607B4F6EDDC7B!
46D415679D1E5C6E74E43367F49364BCC2B2AFBBC71AC93DB346D2F611B6489BD3EF37
B422E590E49799018C860D3BADA77C962C019619A755EF89BB84771BCB983A1FBC74ECDA86162A2D69A3A6B6F8A8B3B8F7DBF0F178A2EA1E1A52B52789115079F7CC06EBCD7B1DBE189BAC66380B1C670027C79A478F12460E9E37D1ADEB0075A350B63CB4D24CD25A1B1181D9E35AC00DD3853BD71212F94ECFB6E34EC465B3A020202020F0E6FE4DF28BCF9D783F29F05FF1DF13C3E0F834EFF89C5B2944153350695F2CD7B7B24D87D6D758989CE24DB7C0DE5D44DDBBA32E85AFA75778A2BBF4E69AF2BB6170C9731ABEEF32411485F697B6D01FBC23838A9E97A0B39A33F467C860FD21F07F26A7E57C070785EBE0F7BAF8B6A233C101010101010101070EA536EEE9AEE415239B9A7B90D7F98BCB8D3BAAA0C365DB2385E5936D6EE7B07C95EF18DF6F13DAC35DFC05CDEC08A8824C3631B216B73B8E91B5FEA06DF01F5DA03F522A68E4060794F63AAAC2EB23A9A0CAEA791DC388C7C76D7715BC5352BC5E2DC43135F2D2A195A7654A24AD78441010107FFFD9');
+
+insert into MemberImage (imageid, member_id, contentType, data) values (3, 3, 'image/png', '89504E470D0A1A0A0000000D494844520000009C0000009C08060000008AB8C24D000000097048597300002E2000002E2001D51C1E1B0000000774494D4507D20A0F061619FD8F7ED60000200049444154789CEDBD797C55D5BDFFFDDEF399429293309310669041A4A0828A8AA2A245AFB55A5B6B1F87F6D65FB5F76AEBD37B9FDBF65E6E1FAF5A156D7DEA80BE54AA16ADBD5A058B28A25026454108326A12022121643C39F3D9C37AFE38491A4C0219CE490EC8FBE5E6657272D65E67EFCF597BADEFFA0E921042F035C6B22C128904F1789C6030482C16231A8D128FC7711CA7DBED499284CBE5C2ED76A3EB3A5EAF178FC7836118A8AA9A864F7072F1B5BB028944828686060E1F3E4C797939870F1FA6A2A282DADA5ACACACAA8ABABA3BABA9AFAFA7A128944B7DB571485BCBC3C060F1E8CDFEF67D8B061141414306CD830860E1DCA9831631832640883060D42555524494AC3A7CC5CA4AFC308170804D8BD7B37C5C5C56CD9B2858A8A0A8E1E3D4A757535814080582CD6A3D1ACABC8B28CCBE5C2E3F1307CF870F2F3F3292C2C64DAB4699C73CE394C983001BFDF9FB6F36712A79CE01CC7211289505F5FCFB66DDB58B972259B376FE6E8D1A344!
2211A2D128B66DF77737511405C330F0F97C0C1C3890E9D3A7B370E142CE3EFB6C060E1C88DBED465194FEEE66CA3925042784A0B1B191F2F272F6ECD9C3BBEFBECBDAB56BA9A8A8C808717515599619366C18175C7001F3E7CFE7ACB3CEA2B0B0909C9C1C6459EEEFEEA584935A704208AAABAB59BF7E3DEFBDF71E5BB76E65DFBE7D442291FEEE5AAFD1348DC99327F38D6F7C830B2EB88079F3E63162C488937ECE77D20AEEC08103FCF9CF7FE69D77DE61DFBE7DD4D4D49C54A35957511485DCDC5CC68E1DCBD5575FCDB7BEF52DC68E1D7BD23E6E4F1AC1092168686860FFFEFDBCF1C61B2C5DBA94BABABAB44EF6330D5996F1FBFD2C5CB890BBEEBA8B51A346919D9D7D523D6E335E70420882C1209B376FE6F5D75F67E5CA9554565692E1DD4E3B0505055C79E5952C58B08079F3E6919595D5DF5DEA12192D38DBB6D9BE7D3B4B972EE59D77DEA1ACACEC6B35A29D08599619316204575D7515B7DC720B3366CCC87CE3B2C8404CD314070F1E14F7DC738F282C2C14BAAE0BE0F4D1C9A1699A282C2C14FFF22FFF2276EEDC294CD3ECEF5BD829192538C771C4C18307C592254BC4B469D3842449FD7E334FA643922451585828962C5922CACACA846559FD7D4BDB9131824B241262CD9A35E2DBDFFEB618306040BFDFBC93F9F0F97CE29A6BAE112B56AC10B158ACBF!
6FED316484E01A1B1BC5238F3C22264C98201445E9F71B762A1C8AA288A2A222B168D1
22110C06FBFB16B7D2AF828BC7E3E2830F3E10575E79A570B95CFD7E934EC543D33471E185178A77DF7D57442291FEBCDD420821FA65952A9A6D6AAFBFFE3A0F3EF82065656569337348802249E8CD478BB9540096808470B0011B8123DABEABE5AFBA7E1ED1FCAF2A49A8486812E892842A49B458CA6CC016028BE4B94D91FC399D37419224468E1CC99D77DEC9EDB7DF4E6E6E6E1ACF7682BEF487E0CACACAF8C31FFEC04B2FBD444D4D4DDACEE39665466B1A67B90C86A82A59B28C2AB588031202428E43D071A8B76D6A6C9B2AD3A2CEB6093A493174450A52F3B986AA2A233595424D255751F0C9322E49469324D4E673DA084C01A6104484438D6573D8B428334D0E591671C7499BF87C3E1FB7DD761B77DD751763C78EED976DB23E159CE3386CDFBE9D5FFDEA57AC5BB72E2D7B9E12126E19CE300CAEF07A99EA32C85514342424E91F6317343F7384C02639DA9908628E43C071A8B26CBE4C2438649A54DB3601DB212E04961038800EE8B2845F5198A0EBCC74BB18A96964C93246F3482A4B129DDDD296679E25040921083B0EFB1309FE1E8EB02D1EA7C14E8EBCA4F8F6B85C2ECE3FFF7C7EFDEB5F3367CE9C3EB7DBF599E0C2E1301F7EF8213FFFF9CFD9BF7F7F5ACEA14A12859AC677B2B2B8C0EBC62BCB9DDEF0AEE2901464CC11441D8784488E522E59C685845!
B96D08E23AC6ED12CFA12D3E49D509875E1080DB6D3A551B6BB141515F1C0030FB070E142BC5E6FCADBEF8C3E115C5353137FFAD39F58BC7831A5A5A56999AFA992C47497C177070C6086CB8592614E155FDD1F91E0B8220D390E1F8423BC1D0CF145C2C44E83E8860F1FCECF7FFE736EB9E5963E9BD7A55D709665F1C4134FF0D0430F5155559506B125479771BACE5DFE1CA61A3A4A06B8F0984270C4B2396026A8B593F344AB797120012E49225F5119A9AB0C57D50E47E38410EC8CC779A1A189CFE371441AC6BAC1830773F7DD77F3939FFC84010306A4B8F5F6A44D7042086A6A6A78FCF1C779F4D1478946A3E9380D20E193257E9697CB3CAF974CF19BA8B16D3E8AC428374D6A6D9B6ADBA2CEB209383666F3159749AE6287A82AB3DD2EBE99E565B0AAD2567A022837133C52DBC8E789384E1A6E97DBEDE6E69B6FE6BFFFFBBF19326448CADB6F4B5A042784A0A2A282C58B17F3DC73CF110A85527D8A6338D3E5E2C141F97833CC4D47004EB30924E438949B261B2351364562545A56F36895FC5741E21C8F8B3B727328D2B4766DED88C5595C574FB969A66515ABAA2AB7DE7A2BBFFCE52F292C2C4CDB0A5659B468D1A254375A5353C3830F3EC88B2FBE48535353AA9B3F0619896BB27CCC70BB5233714F2112C995AA2A49789ACD26530C03972CB32F9120DAE6B!
B2E801ADBC127CB4C368C76D302BFA220803DF104F1348C728EE3B07FFF7E9A9A9A983
2650AD9D9D969115DCA87846834CA030F3CC0F3CF3F4F636363AA9B6F87579638D365649CD83AC323256D833E59E6AB86E584E370C034893AED05A54B12E779DC4C36D2F75943A1102FBFFC32F7DF7F3FB5B5B56939474A05D7D4D4C4E38F3FCED34F3F4D381C4E65D39D3256D7199EE93E60CDD840A965B22214A2D2B2DABDEE9365C6E93A6EB963490D5555CEF3B8F1A5C0DCD319A15088E79F7F9EC58B17A7E5E994B23BD5D4D4C40B2FBCC0EF7EF73B62B158AA9A3D2E3230C9E8FC06651236B0351AE34F812676C5E358CD8F4519098F2C315455B9D0E3E132AF17BD934799044C77B918AEA9EC8D773F48BBCB7DB56D9E7CF249727272B8E38E3BC8C9C94959DB29119C6DDBFCF5AF7FE5D1471FA5BABA3A154D7609AF2C3346D7D0A5CC5A2C748410825ADBC62B271F8DBA249125CB0C5255062B0AC35595024D3BE1976798AAF00D978B7DF1445AF75F83C1208F3FFE38797979FCE0073FC0308C94B4DBEB55AAE3386CDEBC991B6FBC91C3870FF761AC81C4385DE317F97E26E87A1F9DB37798CD2B56A9CD2123214BDD9BDB949A26775655134EB3BBBD2449141515F1C8238F70CD35D7A42452AC57438310825DBB7671CF3DF7505151D1A7812D3282024D6390D27E90B6051C32AD762BC1FE469324DC92844B92309ABD57D46E8A0D60A4A6F10D97ABD9E49DBEE984!
1082B2B232FEEDDFFE8D1D3B76A4A4CD5E09EED0A1433CF2C823141717A7A433DD4193650A3595014AFB8F5069593CD9D0C843B5F5FCB52948228344970A1460AED783576EF17B492F252525DC77DF7D1C3870A0D76DF55870E17098975E7A89B7DE7A8B783CDEEB8E7417AF24315AD3E96890DF168BF14934C617099357024DBC150CA5FDF1D3D74CD27546F7D1544208C1BBEFBECBD34F3FDDEB956B8F160D420856AE5CC9430F3D9476C36E67F81585F1467B8BBC20B91A4C88A4C0028EE0D986463E8FC7F9A6CFC7683D6903530124A9D53D292A044DB64DAC7934744912D98A82A7D970DBF2F0CA94B172B0AA70AEDBC5178904D13EF8324522119E7BEE398A8A8AB8F5D65B7BBC88E891E0CACBCBB9FFFEFBFB4D6C00233495BC0E26B1B61054DBF631E28809C1BA70849DB138535C0623358D6C59462669AE08380E472C8B030993BAE674117E45618CAE51A8690C535506A90A43D5A4636526AC897549629A613058553890E89BD1BBAEAE8E279F7C9233CF3C93D9B367F7A88D6E0BAEB1B191C58B17F3F9E79FF7E884A96292A1637464AF922414E91FEEDE2D3840AD6DB32E1C4191243492ABB096BDCEAFBA79D7D949074C4D92F0C932036499A19ACAE55E2FE7379B35FA9BD1BAC6784DE760C26CE7FE940E5A16898B172F66E9D2A5F87CBE6EB7D1AD2FAB699ABC!
FEFAEBBCF6DA6B581D58CAFB0A05986AB83A7D6D82AE2377F2F06BF1B28D0A41C47188
357BF176F4D749377441BD6D73C034F9341A676B2C96312B5F9F2C739EC78DA7838553BA701C87952B57F2E28B2FF648035DEE698BBA9F7BEE398E1E3DDAED13A592018AC228ADE3C159022EF27818AA6AF4C60F5722E9D4E99124F21485D1BAC67CAF87853E1F5919E49532C3EDA2506D3F974D27D16894A79F7E9A4F3EF9A4DBA6B02E3F5263B1182FBCF0025BB76EED760753CD585DC3751C8BFC7843E75B037C2C0B04A973EC4EE202A4631EBA8A04D9B24CBEA290A7280C541506A92A7E59265B51C8571446686A46890D60802C33DBED664F3C911657F4CED8BF7F3F4B972E65ECD8B10C1C38B0CBEFEBB2E076EEDCC94B2FBDD4A344CBA9232992E423B373C1B96589053E2F862CF1526313D5964DDBF99C04F864897186CE384D67B8A6325453C896157C928C4B4E1A665D6D56A8998A049CE771F1976090A63ECC8F178FC759B16205575C7105D75C734D97538675696BABAEAE8E1B6EB8810F3EF8A0D71DED2D6E59E697F9795CE071774908074D933F3636B13D1EA7D17618A42A5CEEF57099CFCB1055CD8815676F89380EBFAB6FE4BD5098F4051976CCAC59B358BE7C79973D854F78BD85102C5FBE3C231EA5909C280F54952E8F3A859AC6CFF372B9C79FCBB7B2BCDCEDCFE1E6EC010C3B45C406E0926566B90C7CFDE035B375EB56962F5FDEE5B9DC09AF79494!
909AFBCF20AC160B0D79D4B050364194F374D129EE6D5DCEDB939CC72BB3322C82695C8C0584367A4AEF57970B3E3383CFBECB394969676E9EF8F2BB8783CCEDB6FBFCD471F7D94318900157AB65DDD122975AA8C6A5F65B8AA32CD3048AE57FB5674BB76EDE2E5975FEED2FCFEB8D7FFC08103BCFAEAAB1933BA01049B6D67A739165D9298E172E15714A43E9EC745A351DE7AEB2D76ECD871C247EB7105B76AD52AB66FDF9ED2CE9D987F788B75B43E6CB06D0E24D213B974B233C1D019A969FD726DF6EFDFCFEAD5AB4FE8EDDDA9E01289042FBEF862DA3C415AB21A69CD7E61862461C8125E59C2AFC8E42A0A6E39F93B434E9A27001208D646A2D8A715D78E2C59E66CB7AB5F92D484C361FEF6B7BF9D7053A0433B9C1082D75F7FBD574E7712128A24E191204751C85564F2149561AACA6055214751C89625BCCD8B005D965BE76772F3056BBBBFB93C186269630047C0E668940F2261E6793CAD423C4DF32E8BD7C3D24080603F7C23B76CD9C2F2E5CBF9E94F7FDAE9DF7428B8868606962D5BD6E3858221498CD274261A3A930C9D71BAC64045C527CBED727E74C5E5C701CADA0400DB42B02C1024575638CB659C165D1BF21485A986C1A648BA321D748E65592C5DBA941FFEF087B8DDEE0EFFA6C347EAC71F7F4C71717137F6C9FE71C3B31585EB0764F1F3BC5CEEC!
8CDE60A9F97B1BA4EB6D25E6CD035FFB288E3F065C23CE677E5A6C9F38D01B64463AD1
150A749DED099FD98CC67D7AE5D6CDEBCB9D3D7DB092E168BF1FEFBEF535959D9AD136992CC54C3E0DFF3FDDC9C9DCD0443C793A2F8C9C39645E82BA3AD2D047BE2711EADAF67595313B5B67D5A78CD4C3474BCFD14C996482458B66C59A773FF76BDDABB772F6BD7AEED96EB8921495CE275F38B7C3F73DCEE94C789D65A367607627280A396CD0B8D4DFCFA682D6F0443EC4B2488A4318BE4C9408EAC304453FB650F5808C1C68D1B3B9DFF1F3387B36D9BE2E2E26E250C542489391E37B7E7E430584D4FC1B1F80972E0DA42B02B1EE7CB8449A1A632C36530DDE562BCAEE357E4536E67E144B86489818ACA17F48FA3454545059B366D62E6CC99ED36F58F115C2C1663EDDAB5DDCA763456D7F85E7656DAC406C91D82AEF86CC485C3178904074C930F23110A548DB35C2ECEF7B818A16919E1A5DB17E89244B62CF55B1046381C66CB962DD4D5D5B5735D3A4670B5B5B5AC58B1A26BAD4A304052B8362B8B311DA4974A252334154382AEEE77984270D4B2A9B16CB6C762BC169419ABEBCC72B998E13218A26AF8E4CC773DEA292AC9A439FD35AF1042F0F1C71FB377EFDEE30B6EDDBA75D4D5D575A95149C0485D6592A1A7DD2C31445519A169D476D3DF2B99351C9A6C876DD1383BA271F2D56412E8292E83319AC6283D1950A39D62A35F7F7F9CC3870FB36DDB36CE3D!
F75CB4360352ABE02CCBE2DD77DFEDB229442229047F1F148AD52589CB7D5E76C5E3983D5E8926C301AB2D8B6ACBE2E368B4D5757C9CAE738661305ED7C8CE90A8ACDED2DF8BA6783CCEFAF5EBB9EDB6DB3A165C7575351F7FFC71971B949AB7A2FA221437E9D5EAE6D3989B75E1684ACC1F7121A8B42C8E58169F466378649961AACA1497C1592E23693B94E5D6C76EFB6C6E998B808CD8FADBB06103A150E8985AAEAD82DBB87163B792D00901E166CF8D8E6DCAA9430039B2CC3FE7E4902D2BAC0B47A9B3531335E6908C5B8DD90E0D4E9C5DF138FFDB2431505198E63298A21B8CD63586692A39F2C9B1E2359B0B9EB4AD8F23D13E937ABA397AF428EBD7AFE7861B6E68FD9D0A4927BA6DDBB6752BF1B3008E5836B5B64D6E1FD55F1FAAAAFC5FD90398A0EBBC110C529230B1C45723507B8A688DB5B184A0CAB23812B2582B4518A8AA8CD575CE74194C6DF6C8E830263643480841A0D516998C3A9BE13668B06DF6274C9AEC7424E16F8F10820D1B3670FDF5D7B73A14A800F5F5F5ECDDBB17D3348FDBC0318D21386C5A7C993019AD779CE3231DF81585CB7C5E8A3495BF85C2AC8D4409DA2DDFDDD45E4601C40554982695A6C5A7D128C35495B3DD6EAE1BE0EB30F23F13880BD19A414042304AD7B83D271B04EC4B24D8188DB2251AA3B10F84F7E9A79F1289445A8B!
8FA89074B43C70E040B7630C838ECDAA50986986C1F04EE244538D20E9F53BD13028D2
74E67A3CFCA5A989CFE309224E3A02E50412120E829023D89F4850629A6C8BC5B835279B192E23E356B8F5B64DB56501024D929866E80C5255146088A632DBE3A6DCB458190AB13112A5DEB69B1763A937DC959797535555C5D8B16301908510949696525555D5EDC604F0793CCE3BA1706BED81BE2259504DE26CB78BFF273F8F5B72B25B3384A79AAFCAD81682BDF104CF3434B23BCD99287B42A9F98F0437398AC2791E77EB134822B915395ED7F8496E0EBFCCCFE39B3E1F23342D2DABF35028C4279F7CD2FAB36ADB36070F1EA4A1A1A1470D9A42B0321466BCA1715E3F05A8F815856F65F998E132D81C89F16E38C461D34AEB24D941506A9AAC8B449860E8B832649413C0E7B1042D4B86F3DD6E46756298D7A56406F831BAC6797137ABC261B644A20453B8171D8FC7D9BD7B77EBCF6A381CA6A4A4A45BF3B7AF5267DBBC1C08E29365A6BB5CCD793DFAF6066892C4585DA750D398E936782F1C667D244ABDED74B8F19F0A6C017BE309628EC09521C5BDC28EC38E781CA9F97AFC5396EFB8838044D2537896DBC5385D63ABDBCDF26088DDF104A6E87DB125D33429292921140AE1F3F95083C160AF331B0A605F3CC1530D01FE4F6EB2C85A7F184F5B1E176718061375836B7D26AB9A8577D4B2D2107C934C141D130E692879D123CA4D9306DB66B4A671476E3685BAD!
6A5999904E42A0A977A3DCC76BBF830126179304C79C224267A3EE2398E43555515B5B5B5F87C3EE454088EE6B2635F2412FCB1314069BFA68348224B3052D7B825279B5FE4F9B97EC000CE308C946FE0871DD18BDD8FD4A34B12B33D6E7E949BCD34C3E891C1DA2BCB2CF0FAF8BFF372B976808FC1AADAABC440757575ADB10E6A2010E8F2FEE9897084A03816E7B9C600FF273787024DEBF7CD71439298EA3218A7EB5CECF5F04934CADA4894D284D9A684504F052311719C8C49DF05C94C0377E5E632B0976E598A942CBA32445599A0EB2C6908341733E9FE670D0402AD9B0AEAA14387529AC9D246B0251A4321C0EDB9D98C4CD3EAA73BB4AC68C7EA1A459ACA7C9F97CFE3713E0845288EC709394EF37CA5BB24F767BF4C24189F21A9FB0D4966889A9AAF79CBFCEE42AF07972CF3FFD53770B807C5E51A1A1A387CF8308EE3A0D6D4D4A43C14D01482CDD12802B83D279BD17ADFE62F3B1EAA2491AF285CE4F130A739CDD5C7D118BBE271CA4C9326C7E9568948097827146686CBC5908C28C194FAD13619276170E3802C9E6B0CD0603BDD3A4F24122110082084403D78F060CA3B08C9FDBC8FA25104821FE7E63032CD3E733DA1C52C30C9D0A9B66CF6C4E3EC88C7F93C16A7C2B2BA34371348EC8927783910E4E6EC2C066784E8528F26499CEB76F3692CC6FA6EC60!
5DBB64D636323A669A28C1C3972D1CE9D3BD3D24907A8B46C8E5A36639A23B7FA7B4ED
7118A2491ADC88CD292FBA533DD6E261A3A0ECD8B028EFF7DB681439695CC5DE7EA24F7F029805B96890BC1F678ACDB2534C78F1FCFC5175F8C9AEE4CE496804D91288DB6CDED390338D3E5CA588F0B45822C49264B4FD6F09AEFF35067D914C7136C8946F93261D2603B841D8784708E312C471DC15F832126EA3A177A3DFDF619D2890C4C7719E4292A4D76F72C118D8D8D241209D474D5C5FC07021B895DF1044F3606F8514E4BDC64E689EEABDF59058941AACAA5AACA5C8F9B6ACBA2346171C03439689AD4D816412799945A2199A6A2EF7250F60F7E456190A250D6CDF75996955C34F4640FB5FB081CE08B4482A71B02DC9CED70BEC7735205B5E8924481A63142D39823DC841D87A0E310150E8E684E072627FDE84E653409727B9035BDA9A909D334935B5B7D8510509A3079AA21C051CB61419697EC0C4BD27C2224409740536472FA305D7DA620418FBC63EAEBEB89C562C87D293848EE491CB56C9E6F0CF05C43806AAB6F9C0153C9C9D6DF54D34185F413128FC7938FD4EE78F9A60A812026E06FA11041C7E1FA01594CD0F57ECB87719AAE638B6452C8EE629A268EE3F4E72640720F725D24C2EFEAEBD9188D627DDD878E9380A81034383D5F1AF5FB24C46A7666FC7F6BEA78A131408D65F769818BD3748F1ACBA6CEEA85E0B40CD901880BC1AB4D4D3C5EDFC0!
F658FC942BAA7B2A2048E6E90B8B9EBBB6CA3DA908971E928FD88DD128BFAF6FE0AFC160B7ADD9A7492FA610942412447BB06A300C034551907B5A68355D5802CA4C8BE71B9B78B0B68E7D894446F99B7D9D69B06D4A4CB34781E8BAAE23CB3272770A73F50D02210451C7E1C37084DFD4D4F14630C411CB3A3DB3EB470470D0B47A9C417ED8B061783C1EE4A14387A6BA6F29C3010E9926CF350478A2BE914FA2D1D3351AFA898410EC8A27A8ED612CABA669C8B28CEA72755CE8B6BF70B95CF8FD7E7C3E2FB5B57534353511B32C3644227C99487081C7C33559BE3E8B833D0D80A0CEB2F9381AED7138A8CBE5425114D4418306A5B66F3D4055550A0B0BB9F6DA6BF9CE77BEC3E8D1A3D1759D5028C4A79F7ECAABAFBECA7BEFBDC7E1BA5A5E0B06F9201CE67B39D9CC76BB18A42819E908702A6103EF86C3EC4B24E8E93E8BDFEFC7300CD4C2C2C29476AEBB689AC6F9E79FCFBDF7DECBA5975E8ADEC6553B2B2B8B850B173277EE5C5E7EF9651E7BEC314A4B4B396ADB3C5DDFC84697CE3CAF87592E1703D5FEC9697BAA2380BD719355A1708FB3564992D43A8753478C18812CCBFD56BCADB0B0905FFCE2175C7AE9A5A89D78CB66676773FBEDB7E3F178B8EFBEFB282D2D25261C3E8DC6F82261B2C9887185CFCB592E03DF49E60C90E91CB12CFEDCD4C4D15E14FF5555!
35192228CBA843860CC1E3F1742BAF6FAA902489F3CE3B8FB973E7762AB6165C2E1737
DE7823008B162DE2E0C18308A0D1B6D91489B2331EE70C436781CFC7375C061E59EEFF6D94939CA396CDB2A6201F4563BDCA37979595455E5E5E5270C3870F273B3BBBDF043773E64C3C9EAE79C8BADD6E6EBAE9261CC7E1DE7BEFA5B1B11148468AB5086F6B34C6D91E37177BDC9C61180C5294D3956ABA89209929F4C54013ABC361E23D710F69434E4E0E43860C419224648FC7D3E5F2D1A9469224727272BAF51E5DD7B9E9A69BF8E10F7FD89A02AA2D7121D81089F2FBFA467E57D7C09BC1101566D702624E93CC99529248F05C6313EF867A2F3680DCDC5C060F1E0C80ECF57A292828E875A33D4108D1A3985897CBC59D77DEC955575DD5AE0E404BBB013BB98C7FBE31C0037575FC2910A43461F67916C893094B08B645E33CD9D0C887E1704ABEA49224919797477E7E3E00726E6E2E93274FEE9792874208F6ECD9D3ADAA372D8C1C39927BEFBD9759B366B5EBBB24494852B24C6DC871D8198BF3C740807FA9AEE6BE9A3AFE1E89526559A7F76A8116F7FFA396CDD24080DFD4D6B12D9A3AE7095996292C2C6C159CAAEB3A050505783C1EFADCFB57088A8B8BA9A9A9A1BB3B1E9224316DDA347EF4A31F515959C9A1438770B95C8C1E3D9A891327128D46292E2EA6AAAA0AC749C61D34398235E1081F45A38CD5F5E68A3506855A327BF9A91D8DD0310147B023166!
56528CC27D1581BC36E6A9213EABACEB871E35ACD5D6A5B05F6B5E000CACACAF8E4934FF8E637BFD9E1E3F1781886C1F5D75F8FAAAAAC5EBD9AA2A222E6CF9FCFA4499388C562AC59B386DFFEF6B7ECDBB72FE96397FC8F9023D81E4B46DBBF1F5619A36B4C310C66B85C8CD054F453B460485B6CA02491604530C4C7D11847ADF4E4D373B95C4C9D3AB5F567490821F6ECD9C36DB7DDC6471F7D9486531E1F4DD3F8C10F7EC0FDF7DF4F4F773D128904E170185DD771BBDDADC28DC7E3AC5EBD9A3BEEB883CACACA4E53CACA804B96F12B0A93749D996E17530C9DC1AA8A2249C8F475B6BBF4610B418DEDB0261CE6DD5084C3968595823C709D3172E448366FDEDCFA0453162D5AB4C8E572B161C30676EFDEDDED3CBFBDC5711CCACBCBC9CDCDE5ACB3CE3AA13DAE231445C1ED76A3EBFA31F33955551933660C454545141717535F5FDFE1E713245353343936A5A6C9A648940F2251F6C51334D83609219049E625514ED2D1CF128223B6CD3BE1084F3734F061244A836D93EEBA8BE79E7B2EB7DD765BEB7D55162D5AB4C8300CBEF8E20B366EDCD8A3097C6F8946A3ECDDBB97499326316EDCB8942E60645966E4C891E4E5E5B167CF9E2EA52613246B37949B269FC5E26C8BC5D91D4F506E9AD4DA365147A048C95A5D72860BD0165061597C1889F25A5313AB42116AFA2!
86D3EC0CD37DFCC25975CD2FA73EB70F28D6F7C03B7DB7D4CAD0649925055B5DB73AB8
EB06DFBB8622E2F2FE7B7BFFD2D679C7106A3468DEAF5F9DAE2F57AB9EEBAEB505595BBEFBE9B9A9A9A2EBF37D15CB3A1CAB2F93416C32BC9642B3283559511AA4A91A631D6D018AEAA64C932AA44AF92F7A58A4473A59D8D91289BA351CA1226A13EAE23ABAA2A175D74D131BF9344F333A6B1B1910B2FBC90E2E2E2D617A74E9DCA4356966B08000012BA494441540F3DC48811237A35EA388EC3175F7CC1CB2FBFCCFBEFBF4F30D8715D40C330B8F3CE3BF9CD6F7ED3A151B7B75896C54B2FBDC4AF7EF52BAAAAAA7A357D68A9EEA248121A90ADA80C52158A3495519ACE704DC5AFC80C90155C92842A251FC92DA5945A8EB6C9EA8F97AD524234D794F907826470B98920210411C7A1C6B6D9198FF35934CE17099326C76E9EA3F53DE3C68D63C3860DC7CCCD5B47B8ECEC6CE6CD9B778CE0F2F3F39933670E03060CE8F5C9A74C99C205175CC0238F3CC233CF3CD3BA2DD596783CCE8A152B983B772E575E7925A90EF05155951B6EB8816030C8C30F3F4C4545458FDB12CD872392D995A2CD75BB8A633164494293247C9244AEA2304455C85314FCCD874F96F14A326E59C22DCBE8523295842649B4F8BC286DCA9DDACD8249088129928FFBB0E310721C02B64DB56D73D8B238689A545916415BA47D6E76222449E2924B2EE1AB31336ADB3FB8F2CA2BF9C31FFED0FAE8!
3B7AF42895959529119C24490C1C38909FFDEC674892C433CF3CD361AAFEB2B2321E7CF0411CC7E1EAABAF464971AE0EAFD7CBF7BFFF7D82C1208F3EFA28F5F5F52969B7ED18620B812D0431A0D6B6F922F18FD150259906D625CB1892845B92309A0FB559741260C8C9D5B10598CDF94BE2AD827308394937FC88488E6E763F8D629DE1F3F99833670EED6266441B8E1C3922264E9CD8F2E51583070F166FBCF18648258EE388AAAA2AF18B5FFC420C1830A0F55C6D0F599645414181F8FDEF7F2F6A6B6B856DDB29ED831042D4D4D4887BEEB947689AD6611FFAF39040C82064242165407F7A729C75D65962DBB66DEDAEFB31828B4422E2DE7BEF15B22C0B400C1C38502C5BB62CE5375B0821C2E1B0B8EFBEFB84DFEFEFB4D3BAAE8BCB2FBF5CAC5FBF5E589695F23E343535899FFEF4A762F0E0C1AD9FF9F4D1FB43966571C71D7788A6A6A676D7FC18C1D9B62DDE7CF34D919F9F2F144511D75D779D28292949F98D6E7BC3EFBBEF3E515050202449EAB0F38AA2886F7DEB5BA2A1A1212D7DA8AEAE16CF3CF38C983F7FBEC8CECEEEF6C56DE9B72CCB42D775611886300C43E8BAFEB515715E5E9E58BA746987D7FB182BAB2CCB4C9D3A95B973E7E2F7FBF9D9CF7E46515111E9222B2B8B3BEFBC9361C386F1E8A38FB27BF7EE769EC7B66D5359599936FBE0A04183F8C1!
0F7EC085175EC8D6AD5BD9B87123C5C5C5949797D3D4D4D47A5E555571B95C646767E3
F7FB19346810F9F9F9E4E7E7E3F7FBC9CACAC2308CD6D5BC10824824426565259F7FFE39DBB76FA7B2B21297CBC58C1933983E7D3A43860C212B2B0BCBB20887C3D4D4D470E8D021CACBCBA9A8A8A0A9A9894422D17A4D14452137379733CE3883A14387B26DDB364A4A4AFACD5BBB33468F1ECD79E79DD7E16BEDCCFA4545452C58B0803163C63071E2C4B47B91E4E4E4F0FDEF7F9F59B366F1C0030FB07AF56A0281406B2926AFD7CB95575ED96EB5934A0CC360FCF8F18C1D3B966BAFBD9668344A381C261008B4EE2F7B3C9E5651E9BA8EAEEBC94872596E3DBE8A1002DBB689C7E3AD35E073737399356B16595959288A728C405B6C95D16894C6C6460E1F3E4C7D7D7DEB0EC9A0418318356A1423468C40D3345E79E515FEE33FFE2365753652812CCB5C7AE9A58C1E3DBAC3D75BED706DF9ECB3CFF8E8A38FF8F18F7F9C12A36F570987C3AC5DBB96356BD6505A5A8A6559CC9A358B5B6FBD95FE0EF6C9341CC7E12F7FF90BFFFAAFFF4A7575757F77A795010306B065CB16264C98D0E1EB1D6E5C4E9C3891952B57525555C5F0E1C3D3DAC1B6B48C66F3E6CD23180CE2380ED9D9D9645AEC6C2660DB36555555FDE2E1733C2EBAE822C68C19D3E9EB1D0E5F6EB79BF9F3E7F3F6DB6FF7F9FC409224DC6E3783060D62C89021B8DDEE7E710ECD7442A110FBF6EDEB56D9F!
874E3F3F9B8F5D65B8FEB80D1E9F372E6CC99D4D5D55156569696CE9DA677D4D6D6525C5C8CDD8BF0BD54224912975D7619B367CF3EEEDF752A38599639E79C73D8B46953AF6AA99E26F508213872E4480AAA40A60EBFDFCF82050BF0FBFDC7FDBBE3AE08A64C9942381CA6BCBC3CA59D3B4DEFF9F2CB2F53B62DD75B244962C68C19CC9B37EF84FBDFC7155C7E7E3E0505057CF6D967292F00779A9EE3380E5BB66CC9987B929393C38D37DED8259BED7105A7280AB367CFA6AAAA8A43870EA5AA7FA71C8EE3505D5DCDAE5DBB28292939AE1062B118895E1630B62C8B4F3EF9A4CFBDB33BE3820B2EE0DA6BAFED9209ED84FEDC7EBF9F33CF3C93356BD63066CC98D32BC60ED8B163078B172FA6B4B4148FC7C3A5975ECA77BEF31D8A8A8A8EB95E6565652C59B284E1C387F3DDEF7EB73574AEBBD4D7D767CC62CEED7673E79D77929B9BDBB5377465BF311A8D8AFFF99FFF113B77EE4CC9FEE5A9446565A5B8F8E28B85A228AD7B8959595962DEBC7962D9B265A2BEBE5E44A351F1FEFBEF8B2BAEB8421886210A0A0AC41B6FBCD1632F98BFFFFDEFC79CAFBF0E4992C40D37DC2002814097FBDE25C10991745D5AB46891A8A9A9E9D1453A15711C473CF6D863C2E3F174EA353164C81051505020DC6E77EBEF0DC3108B172F16F178BC47E77CF8E18733426C93274F161F7!
FFC71B7FADFE57D2BBFDFCF942953D8B87163AFE720A712A3468D62EAD4A90C1D3A14B
FDF7F8CA1DA711C8E1C39C2A143878E31D0FAFD7E468E1CD923E752D334D9B3674FCAFADF53B2B2B2F8DEF7BEC7E4C993BBF5BE2EC7E4699AC6ECD9B379F3CD373970E000E3C78FEF76274F355A8C9D23478EA4AEAE8E582C465555156FBEF9266BD6AC21168BB57B8FCBE5E2AAABAE62CE9C393D125C2698A92449E2ECB3CFE6A69B6EEA7EEC49778643DBB6C5A64D9BC492254B442412E9D650FA75C1344D515555259E7DF65971D145178921438688DCDC5C91979727C68F1F2F1E78E001515555251CC7E951FBFBF7EF17D3A64DEB777FB7F7DE7BAF479FA1436F91E3615916AFBCF20A7EBF9F2BAEB822E53107A70A420842A110656565545555B5E63DE94D049C1082E5CB97F3939FFC84CACACA14F7B86BB85C2EEEBEFB6EEEBBEFBE63EEBD6876AF6AEB72D511DD0E73575595ABAFBE9A254B96505050C0D4A9534F9B4A3A409224B2B2B298366D1AD3A64D4B499B353535BCFDF6DB74A58AB72449689A86AAAAAD62B06D1B915C2876F89E138D3D8AA2306FDE3C7EFCE31F1F23B6D2D252B66CD942341A45D334E6CC99C3A851A33AD4458F72CF67676773F9E597F3DE7BEFB57A759C26BD44A3515E7DF55556AC5871C2459B61185C72C9255C7DF5D5E4E7E763DB36E1709870384C229120180C128FC70987C3C4E37142A1109665D1D4D4846DDB44A3D1D67293D168!
B4D589D4ED7673D75D771D934FB0A4A484C71E7B8C499326E1F7FBC9CDCDE58F7FFC23D75C730D3366CC68D7B71E173B983C7932959595AC5AB58AEBAEBB8EACACAC9E36759A1390482458B26409FFF55FFFD5A5048E2D99066EB9E5960E4799AF8E646D7F164224D39B35BBA5398E433C1EE7B5D75EC3E7F3317FFEFCD6D12D1E8FB36CD932BEF7BDEFB166CD1A4CD3E4D34F3FE5861B6E60FDFAF58C193386ECECEC63CED563775E555539EFBCF31042B06EDDBA8CF3AB3F55701C878D1B37F2E8A38F76395B682C166B4D67D1929CB1EDD1D62D5E96651445693D545545D7755C2E172E970B5DD7D9B66D1B9665B170E1C2637CDD0281003E9F8F3163C6505050806DDB8C1E3D9A51A346919797D761B07BAFFCC7070C18C055575DC5EEDDBBD9B66D5BC6ECED9D4A545454F0D4534F756B91A028CA31013D3D4534278CFCE4934FF8F6B7BFDD2E205E5114C2E13096659148245A7DF362B118B158ACC30565AF0316060E1CC84D37DDC4DAB56BD9BB77EFE9912E854422115E79E51556AF5EDD25474B4551C8CECE66E1C2855C71C515BD129C1082929212366DDAC4C2850B3BCCDD979B9B4B616121EBD7AFA7AAAA8AB3CE3A0B455178EBADB7300CA3C3B97DAF05D75265E4924B2E61D5AA559495959D1EE95280E338AC5FBF9E175E78A1C347535B5455A5A8A888EBAFBF!
9E175E7881E79E7B8E891327F6EAFCD5D5D52C5FBE9C2953A63069D2A40EC52BCB32DF
FDEE770906834C9A3409AFD7CBD0A143515595050B1674E86ADE6D3B5C6798A6C9E6CD9BD9B9732737DC7003995716F3E4A2A6A6865B6FBD9555AB56753ABA699A46515111975C7209575E7925E79E7B2EF9F9F9BD7E94D6D5D5F1DA6BAF3166CC18E6CD9B77C22491914884DDBB771308045A4D419D063EF5C8DCDD098944427CF8E187E2B1C71E13A15028954D7FAD304D53FCFEF7BF172E97AB536B7F6E6EAEF8E77FFE67B176ED5A51575797B2FC2B8140403CF1C41362E5CA95C234CD94B4D996940A4E887FA48B78F4D1477BB585F375C5344DB162C50A515454D4A1D05C2E97983D7BB6F8E0830F442C164BE9F5ADA9A9114F3EF9A4F8D39FFE94B6ADCB944739CBB2CC65975D466161216FBEF9664605E9663AA2B96EC5134F3CD1CEC3BAA5C0C6CD37DFCCB3CF3ECBC5175F9C9295680B8D8D8DBCFEFAEBF87C3E162E5C88DBED4E49BB5F252D61F56EB79BCB2EBB8C810307F2E73FFFB9C33C70A7694F5D5D1DCF3CF30CEBD7AF6F376FCBCFCFE7EEBBEFE63FFFF33F39E38C33527ADE868606962D5B86CFE7E39FFEE99FD26BC44FCBB8D94C341A151F7EF8A178F8E1874F3F5E4F403C1E17F7DF7F7FBB0C4E92248941830689254B9688402090D26BE8388E3872E48878EAA9A7C49B6FBED9271E4069159C10C90FF5D1471F89871F7E58ECDCB9332DC9054F769A9!
A9AC4534F3D25B2B2B28E119BA22862FAF4E9E27FFFF77F533E81771C477CF9E59762F1E2C5E2BDF7DE4BCB02A123D25E38BE2566D1711C56AF5E4D381C66E6CC99A7DD9A9A89C5622C5FBE9CC58B171F5342549665CE3EFB6CFEFDDFFF9DCB2EBBAC47F52B3AC3B66D76ECD8C1C68D1B993E7D3A175C70414ADB3F2E7D226B2184655962FFFEFDE2A1871E122B57AEEC913FFFA986E33862E3C68D62E6CC99C7242F942449CC9831436CD8B021E5D7299148880F3EF840FCF6B7BF15C5C5C569C92C7A3C5266F8ED2A757575BCF9E69B288AC282050B183468D0D7D69F2E1E8F73F7DD77F3ECB3CF62DB369224919D9DCDFCF9F3F9F5AF7FCD94295352766D4473A9D055AB5671E4C811AEBFFE7A860E1DDAE7D7BECF0507100C0659BD7A35870E1DE2D24B2F65E2C4895FCB47AC699A3CF6D863FCF18F7F24180C3276EC58AEBEFA6AAEBFFE7A860D1B9632315896C5175F7CC1BA75EBC8CFCFE78A2BAE486B82C7E3D12F8283E445D8BA752B1F7FFC3163C78E65EEDCB9FD7611FA9386860676EDDA45281462D4A8518C1C3932A5F9F0E2F1386BD7AE65CF9E3DCC9831833973E6F4DD7CAD03FA4D70901CE60F1F3ECCCA952B8946A3DC78E38D0C1C38B04FB36E9EAA0821686C6CE4B5D75E0360C182050C1F3EBCDF9F24FD2AB8161CC761D3A64DAC59B3863973E63063C60!
CFC7EFFD7766ED75B1A1A1AF8ECB3CFD8B4691373E7CE65EEDCB9FDDDA5563242702D5
45555F1EEBBEF128944983973263367CE3C3DDA7503DBB6D9BB772FEBD6ADC3ED7673D14517B5CB6FD2DF6494E020E9EAB26FDF3E366CD880AEEB5C7DF5D50C193224A32E5AA62184E0E8D1A3AC5AB58ADADA5A2EBEF862C68F1F9F9173E28C131C242F602C1663F3E6CD6CDCB8912953A63067CE1CF2F2F2FA75C29B69589645201060DBB66D6CDCB8913973E670CE39E7B40B5CC9243252706D696C6C6CB51D8D1B378EC99327337CF8F094571A3C99701C878A8A0A3EFFFC734A4A4A183A7428975F7EF949113997F18283E4053E74E8105BB76EE5C89123783C1E2EB9E412860F1FFEB59AE3398E436565251B366C201C0E3378F060264C98C09831634E9AEB705208AE05D334A9ADADA5B4B494F7DF7F1FBFDFCFE5975FCEA851A35055F5949CE789E6A8F98A8A0ADE79E71D8E1E3DCA9C397338F3CC33F1FBFD27DD14E3A4125C5B4CD3A4B8B898F7DF7F1F4551983973268585850C1C38109FCF77528B4F0841341AA5BABA9A83070FB27DFB769A9A9A58B0600153A64C39A90BA59CB4826BC1711CCACBCBD9B061039148048FC783DFEF67E2C4898C1831A27D81D80CC6344D2A2A2AD8BB772FF5F5F5442211DC6E373367CE64ECD8B127DD68D61127BDE05AB06D9BC6C646AAAAAA387CF830252525343636525858C8ECD9B333567C89448243870EB163C70EF6EDDB47!
56561663C68C61E8D0A1141414909393D3EFBB03A9E494115C5B5A12B2343636B277EF5EB66EDD4A6D6D2D0505054C9F3E9D828202BC5E2F2E970BC330D0342DAD936EC7715AA3D3239108E17098AAAA2A8A8B8B292D2D25373797E9D3A73379F264727373F1783CA794C8DA724A0AAE23229108E5E5E57CFAE9A7D4D4D4E0380E3E9F8F810307E2F57AF17ABD783C9ED6FFF77ABD1886D19A734396E5D6BC1C2D8836895F5AD26199A649381C26140A110E878946A384422142A1100D0D0D04020184100C1E3C982953A63061C2043C1E4F3F5E99BEE56B23B8B6B4AD615A5D5D4D5D5D1D914804CBB29024A9F5FF0DC3209148609A26922461DBF631826B490E03A0EB3A8661B4E6D46899D82B8A82DBED262F2F8FBCBC3C468D1AD55A6BF5EBC8D752701D615916F1781CD3348946A3C4E37184105896D59AC8EFAB7953DA66245255B57552AFEB3A1E8F074DD3D075FD6B6DA4FE2AFF3F26DC2702F45BFEEF0000000049454E44AE426082');
+
+insert into MemberImage (imageid, member_id, contentType, data) values (4, 4, 'image/jpeg', 'FFD8FFE000104A46494600010200006400640000FFEC00114475636B79000100040000003C0000FFEE000E41646F62650064C000000001FFDB0084000604040405040605050609060506090B080606080B0C0A0A0B0A0A0C100C0C0C0C0C0C100C0E0F100F0E0C1313141413131C1B1B1B1C1F1F1F1F1F1F1F1F1F1F010707070D0C0D181010181A1511151A1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1FFFC000110800E100AA03011100021101031101FFC400A20000010403010000000000000000000000040203050600010708010002030101000000000000000000000001020003040506100001030204030603050408040700000001110203000421311205415106617181223213A1420791B1522314C1E16215F0D1F1723353541692B24363A2C27324342508110002020104010402020104030000000000011102032131120441516113052232718114F091A1B1C14215FFDA000C03010002110311003F00AFBA09BDC735A10E2A072AE3B63D504C36A740F77881A7B2AAB263A0E82231C601C547C053A7023A4B09B72015540720578D24B2CE210D7443E4F362420!
CE9250CD3162D868D65138B46390A590C1B6C51A82A8BC0E6283B31D2D02D8C6BB308DE3DBCA96488362B469B70C421CC76A1E35629E26549FCADFAA23B72DFF61D9C87EE97B05B1CC31CF05E7B9815DF0A7C7CADB17BA15F93EB0F464523BDB74D3054D4D8901EED65B855F5C171A14075AFD5FE8BB8736274F25B3CA00668DCD18F6856D0B60B92B5459F6FDDB6BDC5865B2B98EE5A062E8DC1C9DE86A8D56FA11A7E09781CDD383711C473F1A4E7007561243DCDC40C715A5AD9D9C20B4902E970CD1390141B63A43DA096B4EA538D339D03082228DDA0871C03704F1A64236151315A4262067DE94FF24282B6876384FB04A2A0C56A4CA07923EE9AE6CA153ECAAEADC8FE06D1DD992D5FF232A839300D8A576905EDD44EACF553365554DA1D709257374E9D0062076525996D11210DB3BDB0E2854263E355CEA5A87E1B651E9E0B8F134772486DBDAA1248E0695C92479E1A1A11840429CB2A46DAD8285C16D1A9F20F37A41F89AA9B65892098AD18D6E1896E20E74F54E00E19CCBEA0FD519E39A7D8FA7246B6E89D3777C083A08285B1F027B7856EC385B537FD4A1538D9478473AB5DADC6C2FEF6E64335D4A51B24A55CE73B173B1ABAF926D5AAD11A2AA2AD9057360D6B89320692001892A95B6B7667B56014C9730B8398F28310D7623E34D0988ACD6C4858F515D5A!
4CCB9B395F637CC2A2589C51C7B41FB8D556C53BEA8B96595E8CEE5F4AFEAC43BECCCD
9B790D837700182650D8E74E4383FB38D72FB3D574FCABAD7FE87ADF97F275D30BA4607808A15573C38566AEA2BD019D1863C3199FCC3B70A9103C855BC6C400F95DCAAC4A6046C3A3862F60348049287B3C692F100523ADB5746DC078F68E155A9416CD96398C2C40350CA8CB0004F103AC9C7420A6A6E160BA8F319D68E4271396D9185F139AE4182F691E34D6B2298D43A38985ED6008D0303C39E355EEC64E07E36481C801734E49950ADD263B5215135EE2010840C0760AA9E4D4B55740F861F28247980F81CA9DDA4513EDFB9806E38A1196548EDA0CAA1B6B666418A69181E34B519B82B3F537AA0EC3B03E0B3C374BF22DED1AD451AB073BC1BF1AD98A89B8F0B51137B90FF004F3E876D735BB2EF758E4BAB87B75C9A9DA2305D8941EA7779ACF9BEC2F66D57446CAF5EB58E5AB3A933E9B74FC56C6D99610FB2D0123737501DB8F1AC4EF6999D4B559156EA1FA43D333C1283B6C20A287B3531C08E4946BDCC957A3637C34B2D8E05D63D0726CF24AE8838C2094692A47DB8D773A9DFF916BB9CFCFD6E1B14991A59206B82E9C070AE92664685C7753C32C7730C8639A121D0C8D28E639B8820F654693D09C8F59FD23EB61D61D350BAE1DA772B21EC5EB78170183C01F8F3AE067C2F1DDD56C68E5C9497C75BC6A0E90383C8CD699A50226C75B665A84A15C1470FB2!
91CD46DC263B66B029C790AA6CC23CE8E4907A480DF4A1E34D122C4089E2974EA3820E1D94F6A0A9919305D64E0A8838914956B52C6817433E2B9D37221CD1967098E4735C010306BBB08C939D58D1947ACD8DD7ED1975BDC3594C139E694B3B8E97A9391DBC4E2D008408A3BBBA8F1D075B84456189C4008BCB0E554BAB2C91418D6E96F61FB530A1508F680C800D28434E230E54CE00A4321FD3C168E9EE3F2A389A4B9D9655A31568F7D0AAFCFC1C0B7EDC64DFBEB0DA032FBB6768161898708D1703C0B9733575A175ECD2893462ABF9123D23D3D20836F8DA467861C502D70E8DA3A592B24A45744E6A1C11073E741DB42BE001BA5D3035DE5D4E23E26B3DA59752A725EB8D89D7CD94862AA94AB7AB91D2C1CD4E4A0E0DD45B24DB65D11731F95EBA1BCEBD5F5F32BAD0E365C6EAF52BCE6B434F0E43F656B3333A3FD05EAA3B2F5BB6DE490B6D37289D048CE1EE3417467EF1E3593BB8E693E85989F83D370EFB14D219490D883C82DC2B909F16D16D75524958EE7EFC803406B5874D23B38416D6C483AE5AF6B40211C5C1BDBA4D2D85ADD30BB572354629EA078D4560D9044A1AF806001031F1C6ACB6494257721370631A51BE8E27C2AA45A05AA2E63D3A72AB2453CFD2757BE09FF4E0B4991F8C8714040C8F1435B3836A4CCB78F03DB7EF925BEE6C96477B913B53!
305C8F3AA7FE0BF8A82E567D496C185B127B8306B9C42270C41AAAD763D688376EEA78
BDFD13488D94A3DCE20B580E2AB4AAADA15B49933657165B8E93048091800B8E02AC55E3BEE45795289686D6179607798A129C3214AC3E4AF7D4EDC7F9774E4AC8641EE3C39F180517437501F691498E5D92F05B43CFFF0049AE1971D7A0488F73EDCE95CF5282EAEA7D8D630FF64EA39CBFD1E9CB3DE76DB57C50BEE4071006971189AE03BFB1D3746C979B71B48207DC4CE6B5B1824BB82551280A8CAC3FAFB62B891F199018C601C5C065478DBCA1925EA466E9D55D3E617384D1BC3BD3E6198A2B1B7E193925E4E1DF552FA2B89A39206F931470E64F0AEEFD5D1AD19CFEDDA4E6AE7BDD22B8AAE04D76A0E7324FA727367D45B65CAA88AE61712A986B43F7D57954D5AF625773D0761BE996E6660796445C40989006AC8A780AE2DB1962BAF52DBB66EAFB68436195B27B89A5EAB81E341D3692BC96F42746EE45D5A0047B685E9C7482065553509898ADA96CB1BE13C4D7C6DF2BC38E938A0ACBCB5846B6B490F86312B482720415E7CA9B1EBB81A82037D33B4BDAC180441DA952A9C8EECA0AF25E7C12B515724796208E69431E5E4BB06907995CBC2BA966919E4B15A5D1129716E98E3046818941C178565BD4B6B71D8AFAE2699AE62B400480320780E555DAB08B6AC441BB4F248E609CB99AFF0030351143B2CB1CA9B871424A6F52E9D3579FFDD6DB1413699086CB3!
39CED23DB6FAC788C2A89896D0B6DE117FB8EB0D9F6DB9B7B79DE7549AB5BB30D5C1A1DC94E5431C38D07B268E79F59B722ED9ED6EA39411212D6441092C78043978227C6ADEAD66D01AEC721E86DAF72DDFAAA6836C9BF4976C8247B676025087008839AA5743B791531276532CB30D1DAEE34D0EAD75D23D510BF6C8E2DC2D1E5C12F2292DDEE95CF5F96400BF2CC970C6B85FE463FCA6AFDB53A5F1DB4D57B973EB0B6BE8BA1A187DC26E64708647620E9040C7B74D62C2FF397B17647F8B4884B0E899EDFA44B36CDC5FB7EE7286B9974606C814A6AD5A9AF2542E4956DBB339395D72AFA0AB17E31570CAFD8FD18BCDCF70F7F74DC652C693AE68A01009315FE11E3A6B5FF00F4F8D62B54BFB933FF00892F5642FD5AD976CDA2D596F6E069604695525305ABBEB325AF77257DBC6AB5D0E44F78D20B085398EDAF408E5362A22E696C8710D425314231A8D93C1D92D6EE391A1F1CC1640D78D20E3A829AE53D248D96EB0BFB98AD213A5BA43B0CCE0AB8E18525E0AACB50982F6E0DFBAE2393439308D5415F954D57772A094B433AC7495F437360DF386E903BC2E24615CEB522D26DADBF1271F711C6C716BD3505C69EB54846DBDCADEEF34841707100627914E4955C3E45B56A0ABFEAE4FC3F7E5CAB5C94F16799ADB748993B8C738D4C19341C4227102BB76C6FD0A03!
A1DD21F68E89525C75B435141EFAA6F8C08CB6BDBB74467B756480A3067A8A62ABC129
1D14C32C5631970D65AAB1CE63DC496B4AA823E63FBE8C4B1791916EF74248A48A576B602D710712175A0E588A67890512B3750C92C13CB2CAD96E25635A0855254EA45E2B54AC1C5A4B62CF93927244F5075336F76C658C8F73DD140C85870C1CD00FC2AFA608B4868F417F45AF4D87D4189AE785BB85F1877220870FBAAAFB4A72C3A7866AE969963D51EAE64ADFD3EB90832307A80C96BCDDA0EA434C89EA58E0FE590AA38297B81C8F72D1AD5039125D3D771B2CA16C6859983D99252AAA4C37520BD4FBC362B57BB521C7FAAABB291E8923CD1F5677837972D66A50154675E8BEAB0F14D9CBEEE4967376B7CA4152D38F85768E734390B91635C1D877D401D7FA66F3649365B212DC3D971ECC6D983580A1011557118572F356DC98E9D4BADBB76D7C2D6C1BB37DA386A000CF9E22AA6ECBC782BC897A8FC1B2D9CB20D1BB30170FF000C201DF9E78D2B6FD0A346CB874F7BFB6811C7771BE340A0A9FBCD67CAA7C1752D1E49BB8DF4C719D7230340E273E3599D2CF445DF2D56AD9017BD4F14D30B40F6FBA4600945EE5ABAB8EC948EAF51BF78FE319E9CC67F868CBF464E753C8B1CE1972640A1A4A63C8675E96CB432B245AE73260E6925BE944E24E754FF00244196B7F3C2D2010F6039380C0F022ABB5131AAC92926824B3F71BE56EA0109C7138D55C5A646311FB3A8!
B236800B95AEC5701881DFC69E18012E1C0C69C49CC6592765324C328AF5D1F6E77A3B1FC272C7135A56C3D7408E99DCA4B1EA7B0BD6F934CA1464007F978F7D57D8C5CF1BA96E1BF1C8AC7AC362DDBF98411DB4D23A22E620760AA422E35E372A83D04C951FA95BD7D44B7DC6D36DDBE28DF046D1FF00BD68563C1FC40E2D3D95B7A95C0D3777AFA19333BA6B8A2D1D29BE3EC761B5B4DCA66CDBA9D45C5992B9C4A01D8B59B2C727C7445D47A29DC87EB0BFB89637B41D00855E5431575D4992DA1E7FEB37BDD7A7510E3F8BB2BD3F4FF53919D9596B9ED5239615B20CD26464870EC34C2974E9A12496E1DAD803496A3BEDACB9A24162D96FFA989035C1ADCF25C57926154E9A15B610CBE95B300ED2030799A149E4532A584064E6DFBD5EC0D6C5087B812495C91304E555D948AE209986F771B860F75A1A1AE52A70701CAA9D0154426F570DD66574ED639CE2AFFE107FAE9F1FA16A4447EB5DFEA5FEB5F9B3FC5DF4F03423904618F9F4BB06B15D8F1AEB37A0107999AE7797CAA73EDF0AA62030116AFB563035CED5A9C4923D44A252DA5910E7EA491A6360D23966BDF43884545712900B016C993814209C7339E551C018B8ED1D2BFCCE0D6FCC06341DE10208BDEACDB1CC42A9635A5483E9CFECC6ACC57943A5A11173339EF561C18819CF0AB921AD693BFF00D32EAF!
D97A8F6FB7B0DC813750E96CD187163896FCC0B4829870AF2DDFEADB15A57EACED75B3
AC958F28B77516C53CD1B62B7DB2E66B768564CCB9900009CC8249AC58EF0E67FE0D16D54411FB16DD65B34CE93F4A45D3824933DEE794CC05792829F26476DD894AAA903D69D53017398D21DCEB475B0B6E4A7365F0717EA29FDCB97B9C54925078D7A3C0A141CACAE4862E01A899FF00402AF2A371005D8D46C52F1D1716A8E623800E2D2172E40679D62ECDDC85D4B8D931D3B8FE593234957105B8AAF7567B5DA82BB2089A110A17B5CE23038AF6E34AAE98AEAD0FDADEBA36B70738044072514E2B1736FD78E698E38C800A1257051C05075435568097114B70E2F90620292404C396094554740BA3FEF0CD736E7F67C2A68349C85A252F6FB7894248AEB3150FD8CCE1388DE400DC88C4F60C6ABB574085161326A0E0002411DB4A822A395EBA47988208ED23FB2A344256DAE6E03581A5855E4EA70ECC71ECAA9D502099DBEDEEEE5CD64535BEBC4B49683DF98AA2D082911DD6D04F6AE83DC73099E2D25CC6800169C7E069FAF0CB3C14C79858ED058A87170E2B8D6D4085B08DBF73BCDBAFE3BDB290C37313B531CD39767750C98D593ABD5029775728EF5B37FF00A26D5FB2B6DAF627C77AD6064A5A0693866DEFAF3D97E9EEADF8FEA7569DEAB5AAD4ADEFBF54A4BC5FD2911467D45C417273ABB17D6C7EDA95E4ED4EC526F7A89D3B8E826599E712720B5D0A75A17!
B195E421EE619A47895CAE7BB8638569AC2454EAF706D0633E6C4F114C2334C70F7142F2A3042DBD17B87B17843A4D2AC1A5ABF30380FB2B3E7C72A4325FECF7A6C772E6C6CD48D009241524E6085AC97C52B52736876F6F2025AE7B092D524B54853DFC692B44B611B9188B758A295CE631C5BAD1AA72030539D589303A263526FBAA60448F2C27D2110E1C53850756C3C505B7F4772C33492BE28DCC01A70C0AE599C2A6A80A013F451FF00AC67E2CBE4FC5951E4FD0128E3E6490073587D410F34AEB68146A17E3188D9AE4F1A56127ACA374AE2D6C424705F3383AAAB34884CD96D8F0318E3073D40177EC4ACF6BA1C9AB3B56471B5D23B5318F1E46B1A317145FE82974DC56C9689CD6822360610A065A42760154B4C744075943FAADADDA9C0490B4BE3279804B82A7114D82D1619EC7320D0584EA476481723C6BA620D69F39C88EDA22B277A1ACECEF3AA6CACAEDA2486E4BA2D2725734E9F8D66EDB75C6DADD16E08E6A4BC750FD2AFD2977E9A319E08A895CEC3F63E2C68C9D6F4226CBA2EE03835EC08DF510B9FEFABF276D4094C6C9F9BA31B159174518D4462482B95615DDD752FF84E6FB8D93A0B9958E099E3F72D76B1E49464BD6182DBC25D20D2311991D9565AC569129B1CF6D6FB8344AD05C41D1A828D4460B49965D7401D3B6AB36DC6960BB86068030D4!
D54CFCC8714AE6E4BC7A8CA92483B6C9666961BC865B76128E01C3123040B489BDFC91
D503FFB5A68A132CE118E70687AE927562884AA61562CDE01C584DA742CEA0BA76B6338807CADC94AAD67BF6D2DB52EAE06C1F71E9A16A0B2DEEE39A4209723F5A782609529D9E5AB501B61821FF96C9CFE4FC5FBAB57C88CFC11CE044085766BD87015D4656196969138F958EC02E08AB55D98791356D058B6190B1AE6608E94B9497386000ECACB7BB981902BAE2E0B9D1C321F6CBD8C6C851A55710107754D376116EEA4B9DBE69ACEE982E59839B30015A1A8B80CD69E98D594AD00C7D9D5F099DCC6C3AA29012C7905A03F13E3F0A1F038D49242EE7D4F73776F300D6C64C5ECC8C52410BEA00F1AB2B821924AF6B9312B81C0FDFF00B2B40659BB7B6B8B995B142C7492BCA358C0A49EC028369297A2024DEC757FA75F48F7696EA2DCEE888E4808922881C438150A79D71BB7F6558E35D4DD83AAE659DA24DA9D25B24ED05C4004D705D949D255D3506B6E928FDC56B15BC0220CE85B2BF502A209BDE9E5B77B4346B6A16A0E098E755BB6A58AA706EBFD89F65BBCBE4FCA793A9322ED4428EFAF49F5F9B9523CA39BD9C70C84B5DB1909B7B80D2E8DCE7B508450D6A155AD56C9328A1562195EB88C8B87398A0B5C749EECAB6D7633D96A4EECEE95FF009C5924ACC753587118E2B546648105A761FE731CD2CF61692B9C037D88DF8863D53510ECC76561C8EBE58C9382!
776E83AF1DBDB679D8F96118B637248C07B11508ACF97261F8E0B31D6DC8BFEF538B5B08EE2EA3602D00BA31A439CF2110373217B2B93D6A6B0B63A393224B5DCAEB6589D0DD92F0DB82D01D3940E01C8435B96095BA1CA8D8E7DAED952D76FC9DFE2267FF008BBEBA5F9141CDCEA81C547B8C7121BCFF007D74E6457535B6FBD2CE741734A804F04E2B4B93441489C91F2CECD0D934C61DA002814F04F1ACA924CB1D4321DA85BD9937128733DC00BD9FC38E1CF13555B34DB45A8CAA566F16E374D27CCC6F9107215BA9A54AAC0B6BAA2DC882090D2480EE280E9A67AD4080EE7DC12ABFE65345120DDB324909631A5C48E1C8516E06A9E85FA41F4E2CA1DA62DC6E226BAEA70AE73DBE66B485D2172AF2FF0063DDB5EEEABF5475FAF8156B31AB3B2596C76F6F0B1B0B3408C83A42809E15CD56D0BC224DBDACC0F986AC06155B1EAC7E2B46889DE4500714147C01B22B736696BB04E4570AA9DE07A9C0FEA3DA5CCDBECC1CE26189BADA303ABCC4AB5792015DDFAEBA54F732766ADB2AFBADDC106D76BA59A4064B8AAE2E3A4D7431636EEFFA31E56924549A44B117BB1271032C4E02BA4F4665DC22DA7B8B0B912025A000A01213FAF0342E959411A83A5F45756DEB6F220E1EEDB39CCF77005DA75050A0615C7ED60490F4B6BEC75A9770B7B9639B6D7115BBD7C8D538F1!
45F1AE3BA7A9B1644968445DED73CC5B23E581EF8C6821EF6AA9C70526A572C38D40EB
C882B8E9D92E9D387CAD8A13EB23104AA9C5AB8A0AD74ECF18D3528789B213F94ED3FEA63FF2FE7CFF0017A72ADDF358A38A393191BAA36B8973BE61CB1E15D975DCAE4236EBAB766EFA5E8C81F208DFC835F82F8675564AB74F71EAF52E76BB159DD5B996D9D1CCC85E59EE01E6D40A9295CCBF61D5C3D25172A489DD367F7219C471B98D6BFDCD01472E66A62CDAA058AE7F2F6CB75A7CAD001798C7038E7C56B77C908A7722F7275BD9DCBE428F94101A072AB71FE488F420E591D2CA5EECCE4D157A4297EE91E8A9E56C172F617EB734E8009D4490130CD38D733B5DB4A6A8DFD6EBCEA7AAFA6B6B6DA6DF144E6000040113135E59B9674D93CD6688F482002386345B110C98D00C0A877A8D240FC87E704464B715E1C6A37A016E57B77964F61E13D3C5292C9416A3CFFD641F26E7713CB316884C8C6B00CB5711DAA31AEEF49A55492DCC79F729FBB58DEDF5BDBD8D8C6E964697351A3003045AE9E3C95A376B6873F226D4224763E81BB85C25BB8659401AB4868634705D7220F85559BBE9A8AB1F1F5DA72D0F6FDD3EE6EB2F8AD6132056B4CA4B803866142D1C5D8DB7264A47A152B1DCEF366BD77A6560F2B846E51A49CC11FB6B7DE8B254C930CE8DD35D67B1CB0C4F7C4657460B5CDF2024B954BC3B8A658D71B3F52C9EA68A59345DAC773E98DD2D191FB92305ABF!
5B6278634EAE24E8D6484C33AC36C56A3FE4BF4B224A3774EDEB9ED17CED709D3A1A74680E2B96211DCE9785AABF90B556E644FFB67A6FF00CC19A7A87AF965F0A1F2E4F51BE0A1E7074113E446E2D0A14E054D7AD76691CC81A36914539683ADE4AEAE02A2B3820558DFEEB6339920B97C2D3E6D0D2A172F495155DE94BAD548CA517276F4C9E288CCD22E240DF70314E828A540E1CEB99F04371B17CA06EA282DF6CDB5FBA3246B8CA00893071738603C29BAD777B707E05BD78A939A4D3493CA6490AB9C549AECA508CD23FB7411CF7D135EED2C5571A5C8E10D452CF5B7D3DD86C8EDD6B3C0D6BA26B07E77CC469C004C109C6BC467C8DDDCEF27A0AA4AAA0E8D1B044D0D7221F483884E1540B322A276B2002BCA993D42F40C16A5CD040418E1DB4F1256F2408F6092E1A502042292C86E455BA9C5C3229047860E201C979D5362FC6CE1DBDECED9EF1CC983EE2591E52207152702E4F4D76B06575AA8D119334361B6BFC9F61607DFEE3059C6D473A0B71AA73CDA5E7F652BE795FE356FDDEC2A8A2D5C115BAFD59D8A2698F6DDBF5F1371704BDCEE030E1E02B562FAABFF00ECCAAFDC5E114BDE3EA6EF57FE51296460235B146C8C0E78A126BA78FEBE95F064BF61B2A1757935C48E92491CF7BB17179524D6EAD52508CEDC88B699D148D7B09D43D4DE04546A511382E!
169B839D6B04D149EDE9040F6F369CCEA031AC2F1EAD346BAB4D492FB1EF0C8AE58370
6CF716C1C1DAAD5ED0ECFE6690A40AA72E195A68C097AEA5D7FDC5D27FEAA5F4EBC8E7F872F57F0D73FFC7C9E85BF8FA9C7DB6EFB891AD89C039DC33C0678E55E82CF898EB5925ACF62B58DC1F2CA9163E6014B9C31214D64BE77E16A5F5C3EE1B0DA6D06E5F23A27981A7417870C48C780AA9DAF1BEA1745BF80D9B75E9BDBED5C63B3D7A7173A57B8B53220B422E354AC596EE1B272A2F050FA87A9AF77B95A66FCBB78B08606E000E6799AEA60EBD712D37665C991D88868CCAE590ABE4426B60B22E9DA5ED3A737103878D519AF087A1D47A3FEA16EBD3F10B7B49049087796DE5C011C74BB31F6571BB3D2AE473B337E2ECBAA83A5C3F5B3689E18EDEF6292CE73A55C40731A0E7E66AFC45736DD0BEEB534ACF52F3B1F5874A5CDB87C1B9C05E9882F6F7F13D9543C56AEE98EDF2D89D8779B37B563B88DCD39BDAE18E34CDA48ADD183EE9BFD8DA46E9659D8C89A3CCED42AB7AB843D6B0722EB5FA9ED96E0DBDA23618F57E71200CB324E5977D6AC3D2E5AB2BC9D84B638B6FBD71B8497328B3944511712656F13C4EAF9ABBD83A344972460BE76CAA4FB8493C8E7C84CF2953A9C4A0ED45ADEA892F4450EED8CB8DFCAC63DC488DC48680348C11500A74EAB604B069637B0F989CCA7DB4C010002799E350122DA02828A2A0649CE9BBA860DC1B14C7F26E3C99A238FA4!
F81AA7B159AE9E0BB05D2B6BE4B8CDB6597B06E4BDAD7C650381D21414C08C2B9F4CAE60DD931289905FD63FF1BFD299B73E7FBEADE08A39155DB3708D8487791EC5D298E75B32E36CCD8AF0586CE582E21F6A595B23479831CAD2D279118D61C94757291AEB54C91B6B6DBD8C735F216C67CDA55BA7578E359ED6BBD96A3708457FAD2DF6FB7B381B6770D90CAE2648DA1A30057304F13CAB6751DDD9F25066CF54B62A39F70ADF065318D570079802A3412C505D7B2F6C4D780D4D650A2346609EDACB6ACEA3A622CF746B04B33CBBFECB465A752E23B4F2A96C7E00AC58768B86C90092471639DAA473890981C1472422B365AEB05B4B068BD57173A3610C3E5C31D2B8E3F7D56E8595C827FDC6F823D6C91F190558237BB1C4B7811CAA7F8D2F619E683775D5570E85A66964B86306A10B9EEF39191249F2357C6857ABAE88AED9ECCA85F751CF24CE9646B25982885A71862C5706FCC7FBD5BA9812508A39B215F3CF3C85D238B9CE2A57B79568492D852436DB3067635E892391C4E00019A9A4BEC14197727BB23DD18FC885238B82AB94BBC696B485EE1059362DD5F07EA658BD984A963E5F2EA0BF2B7D471ECA2F2D538F24E2C126DBA7863D4E424A9D23340817E34EAD22C0C6870685E38534110F445ED208C08CBBC6346085AADEDEE65B364AD91C629F4B9C412079!
B044F49C6B13B2568362535FE4DFF2DB9FF33F83D3C39E7539A27C5EE54AD04D2DD86C
6D5241C0F656BB5A1192889CB7B0DCD0BC46E2C42A3251C10D67B5EBEA6AAD6C1315B5E39CE7CB1BFC9896807E148ED55B16437B90BBCDCC73B981AD7073090E242029C8569C55832E5BC9187E356949919D2F072434083D24C4EB70F539078018D480985E0358D45207DF8D04804BD9EEADB73146402D4FCDED5E18F7D537C523266EE77995F116840D40547300938F6935298920BB683115C96303E51EE4A42C4D763A5C712E4F1CA8B40905BDBA9E5D2D73D583CDA1715C95DDB4E940B20472A720EC43CDFF00350641F6DD48E25AD5571D2D1D940258365B770BA6B031AEF6CB487BC121AE6E3A9389ACD96FF88F4AEA4B6EAF96763DF24A224D3F9AF5739C49C533FB05518DC3D8B1A2B5BADDB1971246D90CAFC3CE4052531AD98D382BBB22175104FF00655E5723FE7665E06A0C4F74F751DEDADB1B516CCB989875623204AA7DB8D64CF82B673305F8B2B4A224B0FF003BBCFF0040DFC7EA6FFC39566F82BEA5FF0027B22B3B16DD1C2B2DCB11D21D2D6BB837F7D69CB7F08C74459E1165A58DD24054C093592D25E920C7496F6D01597DB405E5EAA8D009C4775550DB1E124730BFB975CDCBE4C9A490C1FC2B8576695850626E4182262B4C030D021AA841449271E75086F520278AD020B8882FD4E1AB4E4399A8C83F24C185CD67F8CEC1F21E0B986FF5D2F12021087!
B69C8677F85421B6AA28F51C3C28103F6C88FEA1AF4572F95789EEECA5B6C144E6D97315AC8F3211A006928712E3CF9567C946F62EAB8646EEBBBCAF26088A86A832F61390ABA9892D44B5C8700AF69E35688C5818273A800DF55B84CF327BB0A1E460AE9D9BD9DC5AD71004C0B5CE7211CC7C4555994D47C6F52DE967FE633D3CC67CEB0CBF43542F5284FBBBC0E4F75C10E15D4E28E7A63CCBFBD6798CEED6AA0838F852BA21B9306BCDD2F27C2595C41188255539D1AD12D88ECD82711CA9802F4AB41425C3BEA4906CAD021A25476D42181505420AC7C2A105B792A27F45A8430E4B92F13C6A106C92E72D4921BC50F65401B1C39F1A9210B8259238CBD8ED2E42D51F8539D2B5244352CAF28095A6820819E38F65164358870298D420B0988544C6800758E21831F29CEA04D3103827851204EA93F11CB9F0A0090590A3CF2E34C0434F95CEC014032A01108BC68221BD241C4A0E144210D1186AB6405C3821A564077B4AAA22E294402401C38D42183E1C56A10D845A041D731A1AA4E7891C4D420D9049E6788FD95086801F6E7520861CD3335082800072A0417AC801A326D12093A720B4486621C53234584D60B8F0FEDA04159271071FDD50903A1E71C30772A843011C73CC25400423B9FCBF0E550920B215791E0B4C040EE2714FB695B09A8E394BC0662ECFF00B69!
2423E2D6F1E5431C41C751C1BFF001141479A0C336FB79A325462332311F68A3320D46
B0F1A9004250A1A2886DBF1182514436D2015E35086DDA8E2733408682A119AD09018011DA385490984918F8E352486054A0436868C90C4C9313C289051CF1CE8B09B710EE1DE6A119AD2003CE88B23802341FB054218CCCF1EDA0409D5DA725A80059000F3877D1221AD4D071C071A0C21568E71974C4CD4875C85147FC3C52ABB2459525EE2C9F245FCCB7694C16CE21B6F6C0AC8F41820CD399E1545726BC68A596BAF9B18DB594DB16C2E6C5EF009134005063A9EE793A476E14DC94EBE05E246DDECB730BE26B4FBD24C0BE38DAD20E8FC6414469E04A53ACA9CFB0AE9049D8FD3BEB4BE87DE836C9042710F90B6307B46B2D26A8C9F61829A3B16D3A992DB202DC7A4FA8B6C5379612B18337B51ED1E2D5AB3176F164FD6C84C9D7BD37444F6F235A194185D9F6D290D93C7202A10D0E62A10CA8414788E5C2890CCC2E544862D421B0899634584C047251CA8118B6A28A828E1EDC80F2A5408908BF7D4204237E14440299B22F01DD4BA8E98D08F98A90192476B9E3858F748518D20BF4FA88CF48EF38525EA3D58536E62668BDDC1AEBA46E9B780B8E9D49A8A9CC35A5C32A475F15D3D474E3566D97CF303A4912799CF6C936B04B01714642D6E59297767979D454D74D17FAD41C8B9FD3A8DB79B809EF83667CBAEEAE1EF424E93EDC4CFEE82094AE67D93E358AE91A7!
FE59B3A554ED2FF93B1B77180C443882AA82BCD3A1DB4C0EE20826C74844C69EAE192132ABBBF4174EEE72BA4B8B40C91C71961FCB763C7CB9F8D6DC3DFCB8D68CCB93A78EDAB450FAAFE9749B6C2FBADAEE1D711302BA0900F700FE12DC0D75BA9F6AAEE2EA19CEEC7D7F15357250DF0CB13CB256398FFC2F041FB0D75EAD339CD1A202009C29990C38341E278500092B9A5020A04E7F6D421B1CF8D1443028FD8B4584C0B854900B6A2F6F0A841C18355541A90493005C53BEA007BC7876E550120F2E9D4E3C568910D102A48C688E1C2A105CB2BA4D00E0D634353B29521A4599DC61313423756BF11837EC5A3C7C839160E97EA0FE597C54AB658F48C72F3129F1AC9DAEB7C953460CBC597AB2EB56CF298C151FB6B937E8C23A35ED496BDBB766C910249C7EC15CDBE1866DA649249B344E6024A267DAB59DD59736844B1D9E80E90831E67BBC6954CC20E91A91BBA747ECDBEDBBBF2A290341F6DA70209FC0E18B7EEAD183B97C4F728CBD6A644717EA3E98976CBF96DA186E0B987D0E66A4072F3373EFAF53D7ED2C94566D1C1CFD7E0E3523AD763DD6F247B2DED9EE31E326A1A34AE0A75255B7CD4AEECA6B8ECF646AE765DCED87E7DBB9AC19BC239A139B9A48146B9696D986D8ECBC055974E99A0F78DC35AD43835A5E70E602525F3F17101AE295B893B0C84AC33C!
537F003A1E9FDD934AF8532CDEAA09F1015C5A4D01D32B480E382820E1D86ADE49B11D
6061BC8E2B4C28EC7187B88E409A9001C0D4CF8542183497765400E63CB8278510034CF0490CC71C395090A186B082A4D081856094C43498F65421B048068A232636BE96DCEFDBEEA36DA0C3F3A656AFF75BEA35972F6AB4D377EC5D4C36B6A5B2C7A19D65622F992BA79C62D72E96F7068E7DB5CEBFD872B716A11AEBD675524AEDBBE8468C0260E6E00839255193AE5F8F2C13D6FBAFBA34104F68E1589E1835D72C8A6EEF6734C76D9C963DE0E0EC096F6507D7B2FCD13E5ABFC5959DD65EA9E90BB75DD94A6F76594EA2CC498BB09E1DF5BB0AC3D9AF1B2E390CB9164C0E6BAD045DF5859EFD6F1BDA0C17D1E1A8E0E6AE7DED3469D2B6171BD467D8AE55E8C897DF6E36C43DB289258BE5940704CFCAE3E6683D86B4FC75B78D199ADCAA0277B9E695F76D48A4384D1B700072231D4D3F0AB96049415739D4664BB30DC367F6C18DC543E21A1CD778203FB69D525401B8D46EFEF2D2F22F7632B37FD461684714CF0A7C78ED571E01669AD3722E61ADA4213C813F72D696B529680D08726699D12B62DA482A33A828B088A9DD44869B9E5DC2A018FA8EDCAA02061EC0D2951050CBCB5A4A9C790A0D84D0734E00F70A813447C28902B6C635F7F08700E6876A735D8828171FB29327EAC7C7B973DB659F719DD2DCC863B18707118154F4B3B79F2AE7664A8A2ABF266CACBDC!
BB6CF7D6D7768EF2A5B33C90C7CF484AE3E7A3ABF7376269A29DD5168DB6B875D5AF91C71923191EDEFAEA74EFC94332E6AC3943163BEDCB22F7A077B8E666D1EA3CC55993AD59860AE67BA2C305CECDD5762D639E6DB70807E4CE3CB246FCC8EEECAC56C77EBDA56B57B9A6B6AE6AEBA58020EA6DC36E924D9B7A6B647FA1B27C9230E0BE356BEA5322593195AEC5A8F85CAD750ECE6CE46DE58BB55B1573B4E7193FF0096B6F5B3F2FC6DBFFD99F3E2E3AD7622E4DE2EA4898D7E9716E2241991C45685892654F336A18336E4AB9CCF2388E1D95646855C8261DCD8EB6314C15C41477004F1AADE3D650EB2E90C0FDD5472F9C66798AB60AD3105EE04E3876D3DE1304892ED4E5382E74A2B62C1195400B6B70CF3CAA105003505A8063DA8FC28C0A31296871E3442B6047340523C291A18C6E59771A0886D69C83D6931B799B227023ED094AD4A1AAE19356F7B71731416AC76903CA10A0E649ACF6A2AB76342B4E85C63DD62DA76E6CD2235BA036DA339903379EFE15CA781E5BC7FB9BB9F05252F76EA496EA47E2A1C4AD7570F5954C37CD244C779345217C44B49CC7035A5D5329566B61E8F74B88AE7F530B9D14EB896E47BC52BC69A87B0CB234E47EEB797DFE37A4BDE323FB6ABA6254FD46B65E5B8BB1EA09ED0BE377E6C2F6E921D8F9791E74B9302B0D8F3F1D3744!
6DC3A3F7DE610913892C6F25ABABB6A5376A74D86D4804F0E34644303B85420A19D492
49BC5CEE6B88A2F56413C70A5240B07143CD688205B4A0C3C2890D82350ECCE8480771E7C3E14400DF37F4E752A1421BC3B8D161343850209E54510C199A0424B6BFF00E40EE77FCB55E5D8D18F7267ACBFE9FF00E8B3EE1597A5E7F965F9CAA33856F310E0F5546146E3FF001077D40235271EFA0419E7418059CA800C3E9350860A8431D451059A66415C07754B104FCDE1411073FA7C28104B7FAA8107AAC14FFFD9');
+
+insert into MemberImage (imageid, member_id, contentType, caption, data) values (5, 1, 'image/png', 'My sailing trip in the Mediterranean', '89504E470D0A1A0A0000000D4948445200000190000001900803000000B761C6FE0000000467414D410000AFC837058AE90000001974455874536F6674776172650041646F626520496D616765526561647971C9653C00000300504C544517AD57F7F6C7B3C8AD153052535555F6F306AF9A84E6F1F9CDC8C2A38669ABDC85C9C3BBC5BDB4FBFBE9EDF5EB004E261D4372D9DBDCF9F577B2B2B2E9F4FE71CA70F8F386EAF5F974A1BEF8F368F9F532916942F9F359DBDDDE908E21ADA8692A62A7AFAB19D4D4D3E8F4FDC5D2A94584CA777A7B36B8650067322C2E2FAC947C29B35D68C885C1B6AADCE0E3E5EEF63378CDCCE78A265998D5E98CDDE2A284D08EA4D78098945BEBF5F6F8F545FAF6A59D9D9DF7F8F4F9F6B299B8B4E8F3FCCFCD4AEFF6E4FCF6999C7C5B8F663D5AC36EBEB3A5BBAC9C0A182A49BD674D4B2F2D69B4397CCED6DDA4CCC67AFBFCDE3275C9193A64EBD52B66643DECF5F1F0F295D2D1CDF4E753FAF6AA00301795714CF8F4953173C40DAA5498D67BFEFFD1CACA34EBEA9FE9C705F1F6DC4986C9009749EAF5FCD1DAA58BD2796699C2E1E9EEFAF49AC6E58979784!
8F4E747B6A491EBF193E4EE9135311DB8E084BCC6CEE3E5A1008640E2E57D99765302050692CA53E2EBF1F2DC0283AABA02A751A78D72DEE4E8F5F19BF8F4BDE5E666538CC7F4EC62F5EC77878886DBD483B3A08C9F8061A5BFB1CFCDC8F0EE9D5B91C5001D0EECDD41FDFDBEFFFFA4F8F6BF4E4D15D7D8D8E0E6EB8D643A493822A8A8A8F3F6D40F223BF8F39BFFFE9D936D47BEBC4FEFD31C24548FC0BD71EFD005295EA1224E85EACA1C1DB063D6D662F8F6D105A852C0E287F9F9AD9B795707111CF7EE89040B11EDE75B9B9A7D4D88C8F8F3A01F497CF1DF2100A24EC4C4ACF8F4B6F9F79DF0E146BBD2718F92941B1C1DFEFC8BF8F4AE45484A2F6EBCD8DEA482CE74979EA5BDAFA08EB1B716130CDDEC8F2221161DAF586B6F733070C08C62388C63398D633A9FA7AEE4ECF3666665E3ECF3E5EFF7E9E9E9D3DCA5D3D7DA3F7FCCC0CAD297734FA5AEB5B2BBC3B7A795B9A998ECEE6EEBF4713C563193C03FF4F150128A46DBE7F03B3D3C5B5B5BF8F9D2C2C116F8F8DEF8F7B7FEFDB1F0EFA070767B717171EFCD018960375B583972502D467A4447606F0E0D0CE2E4C28FBE4FFFF79900A650000000FFFFFFE9F5FF3479CFECAEA490000024714944415478DAEC9D0B6013D799EF85553C3212C4264316A238EB5A264E4C2C9B47480209536C614C0CC54E8A49FD20A!
5B00BD824BC4A6B5F072C521ED746214989AD14536D9C40124CED7A13DC94D26C58E04
2288BE5181C96F516BA7773B7EE867B976E766FB6C8AEF6CC9C33A3D7C81A492369247F5F82319291ADF39BFFFFFBCE77CE19547F825054A8600800080400012010000480400090B88FBFE403802889C6284800486C68F8450240A2CAE3CFF8F04B04804417C76338042600247640308D6F7D8BFD9F63024062C98353C7B7504C42FF7D8B63C2210120B1E2C1E1983469E1C2350B174E9AC42111230240A2C863D2C235E36E3DFBECB3B7C6AD5938C90F1100121D201C8F35E3E6DDC1316FDC1A4CC4278F009028F2B875C715B7D620DFC24400480C8078F3E088208DF8981600899240262D1C77C733C62D149308008996400ECDF30232EF10271100128B124B44204422DE9E0540A2E5584FFA007992F72C50482C52FAB33E409E5D23E25900242A0A993469CD3C1F20F30088E21432E93100122B20223904141243200B0FFA0039B81080C4B0CA12998788CD0C0148E48970F390496BBC257290EB66C13C24669E75C8338B3C796821CCD463E9595E44100FE865C50A0891C8C2430785F590831C0FE8F6C64A2284C89A63079F9C376FDE93070FAD59B85058A1FA13008981443091856BD61C3A7468CD1ABCAE0E2B86B194C863788B038949B0A6AE042208C924C46212EC3A518069FDD963B02F4B5144C4772E0290D822F1DEDBEBFB8500249A4460F7BBF290043AB1034062!
85C4CFD700909810F1FF25004461014000080400012010000480400010000201400008040081002000040280001008000240209401E41F860660741402E4A37FF9E8A3DF0D0F3F00A3A30C209F0E7F35CC46FDF760781401E4A161120FE5C1F82800C8A7C34280692901C8432E20605A0A00E22610645A5069C51C0827907A302DA500C102F90A4C4B294038813CF49520138995166D30C05846020816C8A71C90BF936C5AF4405A79662B03A3293F102C9091BF617FFBFB87249A16D35A54A7AF48CEA46038E506420442807CAF5E4AA565A05A9A4CBDBDBDD6140B10911B0811080132F26F814D8BA68CB9CD56C4A3D76E6DB640952C2F105E203C90BC80A665A8D134B2F2E0A2AF500BCD165981F002E1818C7C6FF49E164DA5DFA8E87585BD4EDB40C398CA06441088006474D3A2FB0579D8ED84880E88C8074410880BC8C028A6C59873EBECC4AC6C2936FC599DEE2A109109884B20231C867F603FF35B69D1032D4D7A220F7D8E26BD68D04E34D20FA32A0F109740DC80F8332D64572956CCC3D4AC6BA50C0DBA3A42440BB5962C40DC04E20E44BCD232D4F07665B735B550B4C3E1E8D7122285301F9105889B40DC8188565A8C79B1AD8F1BFDBE425D0DE3E0822244FA5232A18B123E107781780011312D26BD895457FAC6F201DA4162801031E518A34384661843A275!
35556202F104E25D69D15479A395D8D58D74C6E18A01DD20C674A3260AA596E16A9A46
A7D5A4F51B12118887403090EF913F78555A861A5D21E1D1A96B3038DCA3BFC8C669A44217F934421917D799FAACA6CEC546260181780864E477EC9F7EC3FFC9C3B418E32652ED5A532C2EBBC241B7E227ED292D111E249A6AC93191A23B398D4938209E02F106E256693199641C7A4DC92D94C33B18630EA71E53536B444DCBD06F49117A68FA64A321D180780AC41B88ABD2A2321BFBC828DC34330EDF6032B9DEAFBD421B49D3625A733BFB5C2D34DBE2C4690FA8C404E20384372D269D4FE775DEE9830F4AC7B51BFB1A8D911B23649B36BB7B0FAD2E71A63E2A3181F8022195D66F9271FEB0365A285A94074A234D1C337DE4F23A93467E8C5E7D0A6E17F4E598E94402E22D105F20A4D2FA1B3C10FA4D46CAE12F9069B197ADBDD118311E7C1A4355770BB6509B964A2420DE02C140FED11D0831AD37FE9D4B1F350687FFC8CBD563890C444A1F266C549DB9AD0C63E924124920203E0219F95B5F20786E32FC1F6C79651E8D878336A6B003666D4E8F44EDC3A427637D98523457916DE69DE7F05758E2BBF4A50DB40B888F4044818C70403EF97753630BE31835281D3746A6C51168C433469E474E26679B741AE790D64DF1DCF5A7078C9969793401E22B1071206F60D34A29A746E7E1A0CD8DDC9815A6C92E11838B471AB92CF2167379BD392D5ED23ADB81F3FC59999!
ADC4E7D5D510D8D84A21213883890914FB84AEBEE013A001007A3B5E12C22B78D50028F649E878329E71A687AAD214EC490AED16AD2F3DC9030E69BACA5988AFA078C16959840FC00C1A6F5D0878E80D190CCD9487283CC97568B2F0F87A32687ABEA3635C4058F7E5DA1C96A2A3C6F16AE1F839934A32AB4B9297A959840FC01C1A6755760208C568F6D445E7DF0ED2B53B2D12D8D313AEED166633C0019C0F366BB7E93D05BBA5A44F623D807F5F65E95984046BEC63EF6BF7C80E4E0E9E1F70313492BE4BEAB464E1B11DA68D626771E0EBAA50E7B96F2EB2C4383B693EC0BD11791250AA6BCD0EEB6954A2526107F40CCBFE1E8BDF2A154CF2A9271BA4665360AFAF02CBB5BB986665F72ABD27930C6F383C2C8DB08919A266BAF3B103181F803F2A791BB249A1695CB7D979C1AF9DAEDE5645385A75FE16FC691B269143E5B4753289BDBD063228CA6C2AD294780780B0403D937E21B1FBE22CDB40C163DFB1DEA5A64AA45E9AB5ABC83B857EF9ECF8967710619C1668DCC535ABB0977AA2BCE1B29CA988397F448F75AAF12130806F2A5089091EF4B34ADF466EE6AD6C8E3EB74838E78AF3E39DD775A9A779E7BA7FA5C256F4012A650F68AA6666EF4ADFAC6C545382F9A3669534C56ABAD39572526100CE4293120524DABBF49C6244237E456101E4D469136019D8EFB9!
9CD2DCACDEB0633D918D2D7A9336B30915E7B5F2FD93AD53260B668B516639E4A4C201
8C81BA240249A16C5D5A2F664399288A1E13CF15E9BF8AA98D0AC51F05CA47F3129491A2D7986014B739F7B2637150D3868030ADAA11213089E87880391685AB4851BC34E191A1A4CEB62B2FC5191EBAFCD6CCEC10B55E54A9508A3C14B6AECC2378DAE204DA15B6D6545D98F7F272A31818C6C1D058834D3A2D3B9EA5A1F7E12117655D83BB5FDFEBA369486AB2795DB626CCD213C480A642C8D7A5258D9ADEEED41959840460722CDB41A92B911CA65C2E641F674F7356B46E9A2E16ADEDEA9D04D934C399704AD39420AA4D2CE37DBACF63EABA9AEA965C0E106E4D3608148332D2A977549FBE23C9978B097D1285D4D4339B76BD2743E4FC919A430D39502997E63B956A7D3695A6ADCF3A24A4C2018C8157F40249916A3C5593DBCE93363DEA4B7629B6DA1029475B80B9FAEC4A62F93C9CD94AC37FB3D2E228381615BF11EEF43F5A95F20FB9891304C8B2EB7E1359170B2BAA175B18DD4268156C5180B37E33529712E42B7E292B7C2C204EC71A846FC03F1AB1029A685B23AEB59A670D644E8ABB9A43609C883EDC273592445819BE6F27436BCF0DFEA081108D767BFCB3F1029A645FA8B61B4B3E8015D05E19149056EF96BF411DE7E14725B94F47307B554A840BE16088804D362F064ADAE25E42B96D2D4917C2E8187C3D1CA2D1CDB73CC0A9308D3D248B6D7D63842!
05C2DDE6E4C1518048312DDCCE0AFD8AA5349DBDE40010454B782BE40AA8D0300AE381DB55EC06F45081E4FD5B20854831ADFE4D5CE1DB149A67D1799A427C48ABD922451F288C291CBFA8F54F508D84CB24293D5EFBA066C0112A10FAAEC040029B9601AFE37686E45974BF161B2F9A9F0F48E3E1A08A4C51DC7F42D5A469B46822A1B59807E851E6518487FE7C031D3290110940029B1659A60869AE465F25FD76F698B5441E0E4366275ECB8D7C5AA729A336B94E6FB2F6F559F5293ABFB7A612B691E99B5CEDAA0801096C5A0D4D9CE714062F11BA9F1CB2EEADD05DA5A50271D470859D8416331DD06946F7AA81349DD08A4245876DB19FD3308C516C9B4CA48004342D7EAE76A321E8FCA11BE4798CBA8DD827AD73DD810026C96E13D4B04E43494362F0DED636909EEB8603FF9803A3AE119A925B24F2F003E4412940029B564D721FDE6F4405AB8F0AB22F46D72F5D1FAC4976062CEC90D9E81A2B4C56E4349A7E09442873668BBB233179C6DC144F1C281AC58E43B0DBC283D447580A096C5A44227DC19D3834E4F13CEAB479C1F07038AE36F58EEE593455634926877DFA3A3581DB2C9425677030A79C1036500D2D45CD2E1CF63EF2A92D9316E121BA8D2C9240029A16D9E212D44A1ECAE783427D151C0F7E839EDF263C3D90993C28AC0C59530276220D2D29567B!
AFB5995BF8A229B36653277FB4D16E371526E7E6DEA8C39B070CBE7E95E367DB52E480
04342DA6A599ACE41982CEE77D859A20F5C16D85272BA27E78689A4D6E4613785744C30DDC6B4EAEA191796973049AF65E7D4A6E4B03C5346CE23A443EBBF4903EF4C1EB0301A143CF21124C8BC26D35D34DC92B7979646F9F15F170041DFD9BB8114B113FE038A0E1F70DE2BD05BD810E4232E5B859D03BD842B56A726CC242789FBE31377D801D68865BF7E9F3EAA1D25466287E15665297665ADC74BD50E24A1EBA86C97CB05013AC5FE1AC852F00D1B44E59F84D9BA6E646299D48833999203069339B5C38ECFA465D7A1EF621838E7BC40B481E7FAF24D7B189E80009685A86A04A5F3ACF42FA259D9A01472881D7AEED62550F939E827958EB36B5A4E1CF47DD5BC7B49ED7F3E9E6468A907AFA6C8D5AA370B5D03AAC1083C765A5C56F23A8FA4A1E20014DAB35995BA6A893D2F263F581DF489D960A89079FD66DBE3BAFE99A4DD8446CC9961A03D938349A4428E34D9B504FD5F1F230D5256B5ADD9A9D061DFBFEAC3A0FBFE2A5183C8FF08104322D4A43CEAD072E7D69943FB03E06B5A1F815DE10C47518AD39DE736734D924A73072D18C903D08895BB0FEB208D3A0C9D1BBDDDF93F7BAC5990D1E632CA2102A3305BF0D7D537AB03CC20712D0B4B0449099A63381F627BAFA25FDA1F2203BF47A2BBC765EA3E20D6F3CB7E5E2261F2F11F14E1BD350DE3488456175D!
565D6E6A2B47EAF21F6CD214C0BD9A66F3B6F0E9A870C40029996A11C973681EE4862A8C9E5FB25B95743E6C16F2BB57ADD4A80BFDF9D69530DCD4B89CB369D227BEB68AAE5461DC919D6C242219537A5E5F9CC280C9C427A5D4028321FB457F8BBD945A840BE2D114820D3EA2FC2535BFDCD9AD179F0FD92DC86D079381C0378E7B5CDA3BD4491E4646D4C3778661B6BB24FFE47A94CB8B38DB5595344EE26A2BF2176C163CBB2F39685A69EF8F63B488A215D56320009645AB499DC09A362B45B09F09662AFCBAD3184C1C36168C187139ADD2A6D86B87A6FA1DB62172937F4453578A189FF40B5EA843BDBE873322923DEC96D6B129D70FF8903622540981A726CC2AEBFD91AD2DB90034820D3129A3AFE6F588A2ECA4E3F37450B7E728825E276E933C664BE78CB739FB3E0257B5B53AECE3DCEE7D878BBEA3C6FA41C9425853BA629DE00A17576575267CC8B49E6D13719437B1BB20009645A4C1A5EE667BB857E7A7EE5783B387BFB783A3C1E0E3A0DCBC156D4CF570B643E51A7F558EC6A201BD2ED7D7D7D763BFE883EF015159AAE64F61BB89B8059D83B098A2768030704E710619BA56B0F6F6C8004EE696536937A365774718DDF9811E2FCDC672EC2ED1EB217927FD184D2E0846ED379C2A6F99B4D8985DD965CCE17B8DC49017F0EE9AAB2687393893F56640C918!
74C400237E2B5A42954D124321F618CBCA769A8F079381C57F1F9052BDE5F419B73B8A
B41BFD8BB5860BC8E6978FCBB02E8D291A44721A9336632F3B4DB169B43E5211790803D2D614DD694A2C9A3BD378C923B3556E8F2E4E0E13018F1A58FEF4843661CD61C5F57CFE34F2E7A87A95923B1D433901C42D564922352D666EDD5D0D3A04C40029A167D9527C25E7B06CF395B2EDEC06B5B5C6370C8128C659074CD11EEF4945EEF9DE72E2296E40A2BCA1B7DDC873E3BF7C1AA2FBCD12255AA44213945C99DAEBBE2847159A9FC0F6F5040029A168DA666E4609DEDA67BE94F535A3C21D4379965E2814CEB06373A834822E424803E57B49BCFB466B26702B4EE6596D6927655B2E518B456725A904FE7462A9C9F5C2E8548D8A7E59A6ED9CE37B8EF7CC546CEF656E4E2E1A0333BF14D9B1A48716B6FF45786D26E531086DFFA16CC77723F7B2E6A8CB1518884CDA5544B13F9E1075DDB1ED09CCDCA2FBC3BE48BFE9BDCACAF39CD8C27CE36AD9CAFEEB9A5D82D0D991A5BC254B96C0A91B2B99431F373E014BE83C44F1AED85164ACE612227AA6C1ABC6489B249847838C8AD18F006ADA6B0AF2AF9142265473C9D470A4D2BE9C6F3375EEE1D94BE4151E2A6B91C7C501E67F4CEF2480984FD37083AF10EC6CE264D6BD8DF464685483A7B48590A85A54DB6D590CC77AA6B0CF20E1355C4553F29F800FBF97E47E482326AB4A82CD0A4D530E157EDA328E4956081483A!
7B486E18C52DFE334652BA87DA891B757E808B2B6ECE9E926E882010B62E3004570A44C5B2249E3D6CBD296C8FE16FA566BAD12ABBA390338EBDA415EF8897905521924C8B31926EBC29E70639D1B9C91C810BD89CC24F0DD8BE6F2200095E21120F4CF35B90FBF4E4EE06E64864DC011DFF8FC80D5A18C7185588B4BB3C08447A659F10BA7B96B191ECFA696A7038C6AA42A4DDE5413836C16DB06D89D0F54BEE6AD76B8B2781C8AD1089B7A631F0E5159A21C83B2174FF269915E4A880632C0391766B1A83F906BFCE9E17B1848BE7867DE707C6341089F7D332D4E852F4567DA1AE26723304C65267EFED6B4E338C6D20126F024853468BD6621C88E068D103DAC6E69C885962DC00917AE7521ACD6E233B3FA029737A2B458F752092EF5C1A85A0E9F8C2111920926FB70C2115C85F840744AA69410405A43B64204A322D50089896021502A6A534858069294C21605A8A0302A6253B90FAB0808069C909E44319808069294C21605A4A53089896C21402A6A534858069C90B64386C20605A7201199109089896D2808069290C089896D2808069290D0898967C403E1C01D3520A907A7610FF62044C4B5140E451089896D21402A6A530858069294D21605A4A53089856D840BA6555089856D8405E9119089896C21402A6A530858069294D21605A4A53489C995647B50A47!
757547622A248E4C6B6747F5A545E7E66EDBB66DC284B9ABA62CB9D4B1338A40D07757
5D52B19741477535773D080AF9BEBC40E2C4B43AAA672C59BF7173654141C19D3B05952B365F9CB048153D22AA198B561DDF787CD5A2EC194BA6AC5FB59EBD1E1C91011217A6B5B37AC694B9172BEFB847E5EC7397A24644359B7CD72D332F6E59B162C596D97397A8764606481C9856876AD184CD0577BC63F3FAA811517DD3271EFDCF071FE472C85D0FFAC45DDFBECBDFFFDF7EC57F0CBB873CA6B5B3A34385BC16FD123EA8546126E09DD54B566DB923169BCF45CBB554C3518F57FE0F3F8A2AEE437547879FACC9E637B74117FECA25F47FF6A2731336CEDCB871E3CC99ECAF99C78F1FDF36F7DC9219A127E09DD5D9E72E16DC118F2D532E75242890ADDC20CEE43F6CDC86EA98EC19AA6AEF81440A98B168FDB68DC257CE74FB7B33676FAEF41EB38282CACA2DA12560B6AE42A97CB63F1C2856CCCDAEDE19BEAAD9CA4975A9DAFF4B451FC8F33EEFB560C54554552C61652028018DCFA255B32BEF041B955BCECD08EE5266ABCCEC2973376E5931FA2B175C3C975D8D824890AB4EDD85CB3DE7359371B9297A0E41CF5EB268CAAA6D1B8F4F98B244D5A15C207824375F9CE9A6828BA8C428B8134A047329A34143C5E584D9D2BE55C1966DEBA72C5A3243D5B173A70A1563C779E122151F473396735396CC20BC50B1B6045B2A7AFE389ACFAC3AB708B1387E91FF4E5B5!
665578B03D9EA134F3DF3CC339F70E6F2BFBF7CC62B1EF51F6F7DD36FFCCF3BD18C828DD26C6B67F5253468084610E00B566C9939E1DC92EC25AB2EFA3C55894AD46D88095237A2BC6D85C7736CD47A7CFDCC29A23FA54AFC1BBFC10279ABE04E7CC6EC298189A0F9DF946D17435221A2E2CFDE0A2AB7CC66638B04B3DDB23EFB925B8D484A1C3F40B67240EEC46B5C9CE2396FD8C97521DCABB56C3643C5F8822BD8327BA647A9C2FADBA80A895B2068DE30A3DA957C67642F9AB27ED5DC6DC785777E7173AD427FF2C45408AA1166A23909D20262B17EC2CC8B9B37AFA88D0F03F603E42916C89FDF89EBA8DC82CAB68B9B2B2BE32A15263090F80C00024020004868556901005152ACCE4ADA5E00409412B5593B3E58BB63DD2EA500F9726C0329387B61F752A7F3FA86A4D50024F671F8EC8503D79D6C2C4522A905209293EEAEED67D7AD5BB60CFD9AB3FDB05C2FBB6BDD8203D7973A492C3DB0604E419C002938BC6BF59C65EB969D6547E4ECB575D7D8A1B986FFE4FED0328F87D6797CD5B5EDAB771D1EED0D17D4BEBC7D99DBEB2102DC8BAE5B9795B463C3EEB5D3D7AE5D3B7DFADA0F0E5CD82E873656AF43AF3A5DC0C1C6F40D0BCED62A1C4841416DEDCBD7922E4C3DF0C1743222E897EB83F0D05AD10FEE7FFAE0C0D4054973C473672D029EB57FEA076B455F6FF!
A75CF71DB3127BC2CFEF29CAC053B36A077E4F1B2AC48A61FB810BDEC2E094801AB047
C69735767167B75A29FDCFB470F29965E9FBE7BC385A475CB38F5100921396425EDDF8F904F97FA4DAE874EE4F0EA6BFB91DCD01BF2F396AEEF9EBA3F6BCEEAD5BB0ABC3C62F5594EB873B66FF77E0ECB1B3D3F0785F0E4E139EBCEBE5C103C90020EC8A3E4DA599DB4E1034F15785D9D725011AE7D9714AE5FBF1E0CF3E953AF8544634ED205E47D01DE11BA6C90982F24F1B9AAA076D7CBDBB376ECE6D4BB76ED6EEEB95D8785967241EDE19757675D38809EDEBDFBC006F46CD6BA75490BA6EEFE60C385ACEDB54100614DFB5AD2DF7240761D3EBC6BD76A5491CB3CFC9189A5D3A7065FA5BE9C7561C307922F2FE45E3BF667711E91B57FC154F7714197D4860BFB93D013ACD69187B0A37F5D78120145E4D8EB6BE9F4DD3BF62FDB250DC876942AF72327DDAD6681FCFF0549E88F530F5C77C6495C3FB02369B5E49A0815695968508315FB75EC12D7455C02EB1C3F3F7D1417598A2C7041D6BA6BEBF8AAE72CEFD667AF7900493AC0F904320A0E48CFF5EBD36537A7C88A8435FB39A24B51B52FAFDEBE7D3B327C5CB25DE38A3499D26048170F02EB5DF0B0BFDC801424ED16BE1C0371C6612C4532D97F6D75AD570195B460C7D40D0776FB2DD214132E20672FAC75260010EC1C07584B600B4264E7FB59142C80B8D0BA8A13F03224E0DDEEA922AE81B859025B10C60909!
1E88B880CB5820A94E88E803117F386420D98FACFA1F2856AD5F520D831B7B20D58FCCFE7CE59E957FBDF2D4A91F4E9801A31B6320AAF53FD8B377D7932F1D3C79FAC4CFF69C3AF5AB4530BEB104923DFBF3CA835FA0F8FDEFC78D7BE9F4AEBDA74E4DE880118E1990877F3BEDE41713D17FC78EFD7EDC4B274F3FFBCB9FAD7C7ADBBB30C4F20129F3FFD7F24BABF23D1EE87864CFE463139F9888F471ECD8B883274F3E7BE204F2AD378F03115980A4060072B9FD6889A75FFDD33D5F3C3171E217CB97738675F2F4BC5F1EAEAC9CBCF2E9E3E05A5100927FA4ADB8DD5D22EFFE76DAF227903E96E7963F376EDC49C4E3446DE53DF7DC33F9D49B0FC320470548774FA9DB038FECB9C5F2F862E2DD5BFFEBB95B279F3C7DA2F627951FDF3379F29E37DF03D38A029092B6EEB2336E02F9A74A367F2C5FFE8BAFD5FF3AEBB5279161CD7B66EB5B93274F9BF6C23B8FC028473E8754A57617B7BB24F2C8E7E35A58812CFFC5FBEF3FF0FEE99FCE3BF193478787BFFC78DAB4699FBFF99E0A8639E2409C196DDD6A41223B374EDE37FC0002F2C573CF3DF7DA6B1C90A78687B72281DCF7F8CF218BC805443DCADF2BEDE96A9BE52AB17E34FF937D13977F810AAC836C8575A29205F2CCE4FBEEFBFCF37BFF301786396C203D8180E41F29EEEAE1EBAC87F79C1EB99DBE9C9DA2B33C!
9E3D71B8F2E34787BFFA2B16C8BDF7FEE15730CC9107E22C5177A7F249E491692F8D5C
F9C5F2637806727A1E9A81DCF3F137DF63793CFE9DEFBCF80D18E62800A92AAB2FAB229F4FD87370E2D0FCE52EC3425310B6C262790C7FF25D00120D20A5A9DD6D25C4B3E6FEF6E0C4079E5A8E79FC941308E28104F2F8E3DFF9EA7550485480E4B71777F19375342D9CA8ABFFAFE7C6DD6213C8096E8ABE9713C8BDF7BF3EFE6D00120D20CE9236C1B316ED99B7FC8BDF7D0D4DD14F9E3EF1CBC3BC612181DCFBFAD7C7BF0D493D7C20470303294DAD6FCBC01279F7B7F71C5B9E35FC3E3B4567FD0A0161F5C10AE48DF1E3BF0B656F5480E4CF2AEE4AC5127977DB9E71BF5FBE0F11998781201E9C617DBDFBEBE35F7C0726865101E2BC5CD6DD96C17DD6F1F00B278E8D7BEECBE1F77FFA23BEC29AF6F8E38FDF5F7FFFF8F16FBF07DB1DA20384950869F9CED8BBF7A5975E7BEDCAF0EFBEF9938F3F9E8C80DC77DF7DAFBECEF218FF5D682E460988F38CBA5B9D41EAAC177EF6D2AD9FFEDF3FFFF5F0D6E7DFFAC1DEBD3FFCC6FDAF0F6FFD57C4E30FDFC886518E1290D2764122EFFE70E5895BA7E7FDE8FF3DFFEBFAE1E14F3EA91FAEFF352B8FF12F8240E403D216E82F97A885966FF65FAFDC75FA74ED9D9F4CFEC15B8F3EFFFCFD7FF5EABDF7723CE63A60906500D22E0948694F57F11132397CF8D4CA9F1DAE744D41088F5FC17A611481388FB475975D269F3FFCEAA9B!
D3C8FC7391E2F028F6803612B5F5E22CE25EFFDFC853D7BB90A0B014138DE7E6702F0882E90FC23C5AE26BCF3DDB9AF3EFDEA0B2B577EFEC2BD3F7FF1C53FBCF3DE23B00528CA409044EA859E2F87E4BDA7DF44F1F6DBEF3CFDAB8777C2F0461D48697B5757991B918EEC29E7FEF8CFFFFCC73F4E59046E25279059128138CF947912713A33528F9EC987819519C8111648B1941728517775A9334A0504A5A9F55DEDA530B03103925F52D6D5DD7634E37269697E3EC252AA1EF6DCD408211B903649AF505A5256DC5DDC56967AB47D56C699D22A00125B85208D5C3EAA2EEEEAEEEA2A6E6B53F7B4AB59CB82241243204E6755497BAABAADADB80B6129EE1AEE6A6F3F821CCC2DF20150F42C0BABA4AA24E348FBD11E755B57777D7159575B598F7B1C3D5205431D16900C16485750AF84527A7EE999233DEAEEE29EB6EEFA2E8F689B051A091F487108AF978FE6EEEA23B35807738B2EB7060B44748194A8EBCB2E730EE68A59EAEE3200122320FCD9AA7CB7282DAB0720B10232ABB8EBA877BE282D0385C40CC8D1AEE259004409551601D2D3E55AB2720101CB0A134889CC404021B102520A401406C4EDD8888765C1543D4640D0D85F7602104501A9F29D9CA8A175122320556AB182AAB40404121E90CB2C90EE9026EAF5A9252555A007998154B140EA83E791A1EE2E3E5!
AA6EE2901224A00C2F2E8EA99D5D6DD55061B4F1400A43443DD85505C6EE77E83B18D3
5104E1FAC34F2D9AD41A9976170630CA4A40C61E0924769099B4A80484C81E49F492D263C109123EAEEB6A350EACA07C4C902190EE685108F6E75069FCAAB66B50DB7CD82FE55EC805CEE29EE6E3BE22250D5DED6AD86E2376640D8F39FEA23EE8AA84AEDF2BC7129445840D4EAB21EE9FF7E082A7887DB3C78B073F62ED8522A1F90E00A5EAEAAF2CAE125B0D5245640D80DF0C5A9DE33C12A58B7950BC8E50C69D14E368AA6AABBBBDB527BBCA3ADBE0D7F52A69616C5D2A26BD827CA1208C8702204005158140310854506005156A8131A48B7C4ECDA263159FBE67BF13822B19818E1A3A79ECF218953CEA946E236CEB4111C5D4712A9EC8D5B1E470579245457395E815C16E4312BC12686F1C9A3BD9BCFE689B6E81297402EABF9F223C1E411A7406609F248C055E2A800993F34F440FAC848FAEDA1A11FE3477443435774EE5F727B1F7A2C53CA8B5509F2684FC8E6621478A40FCD4F1FFA6864E4A3A1CF3E1A4AE71EBA727BE4CA15AF2FFB8D2420B3F8DE625B626EA2880E902B9C303E1ADAC70FF995A1F99FA1DFF65DB932B4EFF6D07C412177232D3DF1D9D0DD233F1EFA4C541E650447FDD1446DBF47C9B2D0188FA45F191ABAFD196F5943FB5820483399ECE02320482108C51357E68FEC43FAD927F64247047924EC3EBCE824F5CF1012F6F7BB1F60C170F1E3DB!
481068E4E70F21597C46149289380D3D803EBB7B48E3FB2AA5823C7A9C4E00127ADC8D28DC4619E3CA95277418483A92C77C944E3C806085B04F3F7665E88AEFCB6414F3F228710290B0E2235453A1EC91799BF3298480CD15ECD87B2B847D9CFDCA1FF3D5982B9C65A455529FEA74029028C77C528CB9A284974771891380443BB8BACB2352F94E626AA26FF58A8B997A09DF492CCE703A0188821AED63605B91F2815C4EC875A8F8052234DAC7C8AE3B8503113A895DB39C4E00A2A046FB9839FCA38A0779748F1579281B88D068578FA5B3718A0522741213731D2AEE808C81467B3C0119138DF6380232361AED7103243F75784C34DAE305C89869B4C70910BED15E5FE674021068B403108FE8A91F5B9D4485033933B61AED8A0792A0073EE21548C21EF8885320EDDD63B193A8582097C762A35DC14012FAC047FC0149F0031F710724D10F7CC41990C43FF0115F40C6EC3A9432818CE17528450219CBEB500A0432560E7CC40B9031BE0EA5382063E7C0475C00817528650181752845018175286501390AF2501210588752161058875214902A588752149059200F25018175286501817528450129857528450181752845018175A8608044F19F308075284501817528E500298675286501292B1EABE7A1940AA404D6A124038121002010000480400010000201400008!
0400012010000402800010080002402000080081002000040280400010000201400008
0400012010000480400010080002402000080081002000040280001088D8C77F0B3000C784193E7E8425740000000049454E44AE426082');
+
+insert into MemberImage (imageid, member_id, contentType, caption, data) values (6, 1, 'image/png', 'During my trip to the moon', '89504E470D0A1A0A0000000D4948445200000244000001B30803000000F941F8540000000467414D410000AFC837058AE90000001974455874536F6674776172650041646F626520496D616765526561647971C9653C00000300504C5445635A53317090B7C8B169B3CECEB0946B6B64A99A89DBFEFE92CCD3C8CFB78A9485B2D2CE43393599A795B7A696EAFEFD8779687A8474968977383938896F537B7B744E91AD756959CBFCFD99A58B8A8C86CCDACC746B6410344D75C9DBBBB9A78BB0B26EA9B5A8B8A88A947A9A9C96000000AAB59A6557488ED7E99389258E6A2F6B736495947A5A635286846A857B74B89C87D5E7D47A846B728D8BB9EAEB124C6FBAA58BABA870A995792F2314A79C95695035A5A58BBAFAFC4B839699E7F5A8DCE63782A5265472544A37A9ADA6958C85C9EDEC84BBC9AAE8EB4A52448E8848B79879364344689AAAB9EDFA988569A78C76A8ECFAA697442B657C24150D4A6F75C79B79776F2C36322874735AACA550A8896753A4BE062539967A63B3B99C7B634B6B735AACBCB2C9EEF8462D1BDAEEE9AB6D4F745A42B7AD9E8B9993394238AAF9FD0F405A646348D9F7F5B37!
6662728209B9A6AB7BDB235291F573E2807080BE7EFD8B8E1DE021727171713A59C68C7F7F49CB69E677675827312B6946894392B3E0A0A021215BA88683A9FC693533DA954414656677E7842475354B9F7EF8BA59992E1E0585238D9EFF8141009BB88742F3131C1BC7D644A40493D232731278CA58C175F81673926C074627B947F646A6E1D21196E0D0A495239957B734A4A530410081007057729185A552652524A5A5A525A524A4A4A42524A4210081163635B5A5A4A636352524A4A4242426B6B5A4A42426B635B4242395252425A52527373637B7B6B4A42394A4A4A73736C8484737B736C525A4A838C738C8C7B737B6C838C7B636B5B84847C525252929C83727B639494844A4A397B73636D63528C847C929C8C94948D8C84738C8C72A4AD929C9C8CA5A59D5A5A5AADA5937C7B629C948DA5A5949C9C83ADA59D9C9484636B525A5242414A425A4A4AA0AD9D6B6B52ADAD9C52423F424A39ADAD934D42314242313C39425A4A3D42424B515A524A424A525A42404A4B5C5A40515B5B524A526C5A5252525A846B5BA58C84424A314E4A2D5A525AB59C945C413C28292C6B846F000306000004020106010005B62849F000010F9A4944415478DAECBD0D585367BAF76B88243169208910925890001762A312F92A1F129208848A016CA0D21A1001052A4505D60E08D!
6BE68A716A8D416A11BD9DBC1A94E476BCB6EE7C096F4400213D868E4AB28123B2FE39
CEA6EFB9EB6A723BB9753633CF7B3024AADC897B64AD6BD9290AC242B61AD5FFEF7FF7E9E67ADB5A0F864C3C9936527AB4E8E07864F0DF73CC6A698FFCBE7270B6C4653C32CDF474C739B1AA6BFDA4F162F38895930CC62C12CE6B1B08CC5BD8FA79A7FEFF39385658631DBF71131B7B0AE756CAA97DDC62C27179CB4DCBA75FBD62DB825828859C4ED5BD88293E65B80D3EDBB648DC5BD8FA79A7FEFF393923BC398EDFB88985B4C77BD83FC801261B72D48B3B0F1CB58DCFB78AAF9BF787EB2CB0C63B6EF23626E31DDF57E0BBB7D1229D16DC8657788BBA352F73C9E6AFEBDCF4F4AEE4CD57296EF23628E596ABAEB1D305A805908888898134477D2D92FD58BC867443E9BC67AB7A633CBCF8DF54C63B6067BB2E53CAE46FA517FAFDFEAFF9EAA809AEA79AB129909880888E60A11A14404447383A86C4C896ECD1AA249FDD62C9733D5727FAB78D4DFEBB7FABF27FBDCA9B6F37D9488808880682E10119E8848678427222022AA330222DB55A2D97EE8A35A694F6A47EDAFF5BD1FD6E7FCD2CC5AB0592B11011101D15D88082522207A384A746BCEA5FDB44BC24754D23EAE4D038FCBF77E589FF30025222022209A0B44842722D219E189088888EA8C80E8C987687C64E3741B01A7DBC8F8A4AE245B8BB9AEB7F1C646022202A2B94144281101D11C212A9B5289A65BC2FF!
5AA5FC7C2BF19FF82686E92811011101D1D47B7B10E98C48678427222022AA3302A2F9AF44730D6233CD6FA86EDDC2B0299588808880E8C11059082522E2095022A2889EEF25FFAFA044C46699EF10119E8808C2131141546744CC0F259A6C64E3648D8C8F3B3404BCBF6E3C700F58022222A6095119A144443C2C25BA35ED21208F7B494F342DFCDA2BFC01C72722202262FA10119E888839A733C213114154670444BF39448FAAC59A58BD3602D1A36CB12656AFAD406421948888C7588988DAD7666AFC47A744C4CAB595203C111184272282A8CE88989F4A3459E3DD6C0F5E4E40650B2DD6044444CC0DA23242898878F84A34E521676778E818A2E4B781A120180111110F61501A91CE88985B3A233C1111447546C46301D19C06A511D01010CD7964230111D14E442811110F4B8966BFCB1051D21325FE9CF73B23202220223C111144754604519D11311F5BAC89416744CC24C64FDF494044C4DC2022948888DF4C8988DA96086B853F072522561F117720223C111184272282A8CE88B001259AAC31F1B73A39DE235B19C48F63768D8DD3D903968088880743643949281101D1A357A2A976219A2F434088A68B47787C22022222E67C7C22229D114178220222A23A23207A8295683268A6DBE8486C141B81E87E7BC0121011316388082522628E10954DAA44B3DD6588!
289989E31311101131F7E31311E98C08C2131141546744CC0325B2D5954140FF105BAC
09888898194416428908881E8112D96CA54A34493CBCF144044444CC793C1191CE88203C110111519D11103DC14A64EBD04CF7A0EFF36D30DE43696C3C49404440343788CA082522207A784A64EB25FD744FC935DF76957AA8E38908880888E63C9E884867443A9B753A233C110111519D11103D3E4A642B07B1B23CA2B015A8EEFDFFA635B291808880680A88CA082522207A744A34DF4BFB871DB652F2FFE2FF9BCE7E67044404445342447822229DCD399D119E888088A8CE08881E0B887E76D23C5B6B6C7CDCA07A5CB7C364DFEBBE675E242022209A214465841211103D2C25B2BD5D861E3544B32DF91FD7ED30E9F7BAEB8908880888E60211E189887436E7744678220222A23AFB5521321310DD07225BD903766A3CF098F4E963632FF9E5DB2C13A779D3683BDD8398D9D41EB0D363C83C89D41C1B8308BB8722F3F8FBEE84ED41642194E81E22A6E00C334F029F0D436443C7277A085EF9BEE96E2A88E6EBA1761EA8440444160CBFFCCCE34C6A790888084F747F2A102D63D0982760F2403345782202A27B9296F93E8C58088888EA6CFA4D411349C030CC8CAEE3809809882657A227ADF1EBA1C3043FA9935647841D439608C3AC8860656314C1A56162898FBF009B0AA2270DAAE99E2CF1CE6A9BCE1EB03603911979480B36A6C9000EE09372687D52D21EFF3D7BD!
E78737D198635E02C359499115508A193988580681AC727B215886E21443033E80BD0823514B9AE5729DD69713CAA35F21CA3190AFFA4F545D85D58B0FB1467B6AD44B67268DE49750811646E284308A524B94BA595D2CA980DE13C44D1412ADCC225BABC5C53B1E7701912A2320C6F9AC4660AD1935ADA3F10228C80C8DA0306D7B20648544549EE1A1EAF3C26465AE9E6E353A9C8E05179BC8080121EAF44A329C9C8733C98DE9E82240BF74A160222C213DDEDD0C035A5ECB07B7A4C1EAF2420401A534953B891858A18695C79785C390F89122FA384BA35CFD17189FFB765083A229D59A6757C225B81084A2F73C3B7EE8E5B217D6D8D8E2EA1F24A62623401E51B62683EB4CACAF0ED013171C81AA18B639E639EC7F765166BC946404428D19DAE556CBD7B1E350F85D54AE7F1F0D8E006C1150ADD1434ABCBCEA33A3A520F3A3AA67F0BE0DD338E8450A2072E6CBEC084FE859FF1831583BD0102EAEB0278BC684D745E74349577D0F1E0416A9EA6842AADF451ABDDD4E408B892B90A1023472ABCE420353A9A47AD380CE89D844ADF62699886083D70E33CB1EBF396059B5489E6314477FB592D68EBC315587A339DC78BA994F25029C6A30243071DE1018D46560144FB2B23C8E4EDEA5AB7701E353A00BC1135A0A41C5EA5D903B6E8E449CBB162CB7D4689D80E4498C!
D42648D2A4B31F094E29F410DAF546C007EF2A80C9A066C0F781F5E8054CAAB14EEAF5
4CBDCB86A1F3721301420944814D29872A9262083EAC8A3AD076B543C56EADBBC124DF710BDF3AECC6FB0981BD62BA8BC7037B7CAED31C8F7282ADC3579071DA954A9901740E3F1B69747A82412AE4A5849030D2A71E756565606C448A590F632788C378A50D3B5E517831EA759E23FF14346262A91AD4034F63FDC4D6A66AC4195C1E3B96D2793DD1442A99216C0A0490334198E3C8D349C4AA5F983B92E2FA7F14A948A0A09C33D83CA2BE79504944BA5B438AA4628ACD448304BD92423D66C0522DBF544F8B069D8FA45FE01E1E1113E3EFBD56A05A42B5A80465A428D3E7830402A14C6C5B82729F2A2039002F11C3318ABF748DC41ABF23232A4E5E50154AA86A6916A2A8ACC27F1C1D68427B20D887E59DCD72B636222D46E6454826550A534A5BB7B9D22407350A3A994C868EE12548E4161AF61444369EFA8F1174A03A0BEA7F24ACA35D18E8E2528DC5390165988EACC2621426DD4EEBCEDE44A3759ADDBFEFD310AA57FAE8AC1E3E545E781C15608B70B2571E0B1A3355485927130CF712BA287265132E059D0260F05B86F6A49745EC5E169EF9036AF95E8496D1C9B354455A8BCC730775E8C9B9B1B79FF7EB8D9409354D2A4197893A2A3234F08CF54564A69D238A8E779F83C28FF156E0A49A07B09147054EA120D9ACB8B3E68D5A2DB68A1B3DC53F6496D84BCEF!
C8465B8108B3406DDF5056914175538308EDDF2F73DBEEB3C18DB7A13C23E3206A91CEA3692A2B256E6E34052DA69256298DA109150171521997CB8D082FCF2841C96C2B5503E29477904A4D4F41CB3C6939697B10594EDAAE12416D5F86F9F3A81BC8FBF19091DD22D46472780932CE79D4839A0A6A798CBAB2D2CDCDC7C787ECE626E40AC94AB55AA6DE4F22F3787190D11CF3347979409B23EA6E032DC2E6B2CFFEBC56A279B8E7D0ADB174662E4B82D25E2DC311028822B832B5A43C20C391BA752B6811D8E94A3C7CDC222ADD7C20DD91D532592D5CB9422A2D29809A07669B17BD156C3654728E154516EC3636E3FDDB9EFC5D88A6A144F31622B0D5F2800D0A60688CA2F0082EB756488DD668A2B7C294E778D051535EE986308A409DB06E6435FE3A924C9811E7EF0F955C8E3B356F099ECF780152EA1E4BD9C9E91FF061FE40647B9E68623E4BA105B871C93EE4FD50E0FBD4927CB864AE240F8AF974DA5647D4550F0A535E190113A434B88018ED57EF27EFE7722519197BE4E0A9A3A5792554486860B86394BC926FB169B65A139E68BE40548CB967842334A4B4884AB5226683902C53297979D41206231AD99C83204501E5DB237088B643562393DD7CC811DBF7FB90B8D48A1406BC205AC3E3395A215228A88C19341711D5D93C8008FEBE91111721AC74134AA5!
3485BB821AAE546F77AB2C41E388C01431349A3C80233A20A6BCBCB292865C11643332
797F049924AB2509335C198E0721E345339064417946136AA839161B55A2F123A5CDB746B0C9D6051A39760B8DB04FD1C4842BC8D20C8682E1EEEE5E12CEA3C59473D568383EB89C83E89A478D2E0F8889E1D140AF7057444696683F69BFCC8DEB23714703D320EF8160FD0B6A72AC74A752BF379B310B86A13D8F66DAABFFB8ADEF99ED016BB62D88D0E02174C486326578F806B250410D704F5754087901E134F276B5309C91170D62E40835571E545FE5BCF298F270C5B82B22BBE118ED8702AD56E88843E44885BF5BA1CC8FA6F1A88C62042976FBD6D8718B6C02221B54A231882CAE6077144285507A50A14817BAD37895725265A05B0494F68ED179289541D5A509882929A18114F9E0C51998A2FDA84423D792642A79347AC956F4B27F81298FA790521DF7E0FB598314996D07A23B4A746BDE0D5198BC5235E3FB48BB53E336088534A13FCDBD42E14E738FCB95A8D4952405C810C39FA10134B652F3A20318313C296F3B9ECBE02223A3E66DB7FDB5649E3429DD712B4208B536E6215B2415F2A85B7F420365219961D385E8715DDF333A3ED1F871AC6D07220C4DDF46F3622A155C8550E9AE84502868815CA8BCC84289A3A33049131D8D6AFC684D098FC6E39594540A81A018DE06B58CBC5F564B5693DCE2A4012059C83B1DCCC3752B5A53A9282F71ECB01E4ECD6!
CB61D886CD113419459CA1419BCF0729022A952E8EE5EE14E53D02424F20619999CA47167680202F07D3E18B4689E541A2E2D5780B796284AE21424AE5A2653C771951A7F06D59AF40E1EC4F71059A2A0D168D4BCADF5681710ECD62DC213CD67883004D19BD492F20D31316089FCDD3542254DA1A409254232C94DAD91248129D2E45135349A3BAD84C78B914ACB0360D204442B144A2E92A20D52258DA1B1D67190F700A6BC835486B492468D76BC69B634DC31454475364F21421BB9A882C78BAB945696074895EE527F65BABB422121B981C8B8C5C8EDA85B1DB732A8527785349CCADB10210CE051F3CAA3515B7689A256BD5F161818C0D06834EEEE9A3CD4016B55A23C6A8092164D755C52044A64BE85596C4989EE1DD9385F87C5DEFD77C0B1B8669484C754D2A452AA342983214C07CD4912864B556A12ADBCBC041CF5C13C5E804A2954D02AC96E641A8DA7D10468D038B43819494692E44AA0188BA669DC79C85167ACA63A6AA8BC122A244250A43DE0DA9167986E43D163DAF8385DE87FD6626D3B10C1E6BD19571E5329A5C54879EEEE0733183486422989E3F122C8B5121AE80EEAC7888E1172B924B550AD1692C369C2385E9C42A9D484C7C9F6936A79923D542A2F20809147454320A3A9D1EE1A74DC07060DDEEADE8059EE1CE9C11620B2452502212A9306C!
45556D2620262A84A1A3054A16128419484113EB512292FBA04AA7B6A068DA65093C86
43597EBA650A8D4C270212853384F4D92C9B9AADC241E1AD988761A2A41AD93EE0A2ABC85A160005087D1616A6C0822EC97FB9DCDE7FDCDF07F07339BD797046C0788C2CB03A8420F0D23DD3D23434393AA5DC9115C7225B23F009146A8F62171C96AB0491299042AFC8808B5126E79322E2910A6002AB5C431BA445382EF771D4063D040BD0ED2183CC79B18B8A2DB9659E6B3C7FD90CD0F3C8EB5ED4064B1F86784C7F85456F2624AA8EE4A695C1C831A1327917073B93E64B7725E89A346E348959054DC4075848CBC41A1ACC48713A1FD60D5E47032A9965B2B51903468D47586263A03808B2E09F04F025F44D548A3A9E9E60633FA205B81C8063DD131C08816105EE95619C3939694D0DCDDA5D1013C294DA252D5926464B54F4C89660F83EA2E018A643237928F4CC253D036A8D53E649FFD24B7FDEA0DF0B25A355728D594E4510F6644474783C90657AD606404C4F1024AA85B8B30EBB837C213CD578840887EDA1A87462C6E8F51F0A2A50C8934A01C2092A9642452AD4CBDDD9D56EEEFEF2F11AAE0814C285128680AFF5C2E50847A5FDDDCB811001188519C50A94CCF70748C8ED644F30027478DB424461AAE29CFCB5B69BE7B5875A23A9BA725FEFA92B8988898CAF24A779EA6DC5D525E020C81BEB8A9F793646E95E56092780C254D55AB562B84B5342A4F23A4!
09795CAE2C02D29ADA4DED531B081891548AA424E541C6414794D3C0621FA40668D071F9A879156343F66DA4C4B7FCF2CC8BF3FCA0E8E8C0D4125E797844E5867245098F16CE50C4F134B4182E49C64D91C9B83E341E9556C1D0D014B5A0443E1212505252121313A78EA186D32ADD486AAE8F5B606E6E2D49952B57D0F268E91A6A09643428F6A3A90C45493843C363588F80649E1547BF56E3E1741B13277BDFCF8F9466B6398894E8000D956EE5340D0FEDDAEAA8E1C59168112A5475F970CBD158A224798A429E2B510BB98AC03D34854425510879C09AA65CAD06ABBD61831B29B0960C4F4894528D940A390D1D628DAAD15003A05ED3D4DF3E76CCB620B23525B2142978E1318A4A1A4D0AD987E70E085169493E32320D529492867667756444D348AE81242E894496E726A9481212494A43157D4C849ACCA5F9C4F1DC6460AF0325F214F91BD13428D0408C32F23232D01EFA0119EBF18345D80C446577C613CDF35D85EE84D99C22850A5F21DCAEA8CCA329A24BCAE3A84AB9303730422197D284E134AAE68DE88C74AE4422CFA549C9310A1299CBE506CA85D268C73C29DA09AD5622A4F17CD424AE4CCE2549E29429CA2425C3312F2FFA605E74465C4049794092F58823B3DA99F1D71ADA31DDA11E93BDEF3E4A643B10A1318D71E11B14A41250A2A46F153C5E7480!
3257C5CDCD252B2592CA720595F186E3C13792684A798A921AC755CA654892C81BA454
C857AA0D6E64894A45F2E1B9A1220D4A3AA94222952425B9531D3332A819E0ADC3E3F224E663B33E33DF930991AD79228B3C4EBA218EAC8AE095F094290A501F7992902454E572951205A4232A4379D0D15DA192BBE64A78BC40898C4C5291641B50CECA28E14262937185422ED46932C0484D26A5C4D1A454A92A9D473D58C2CB08E0D1683C255665B9EF1989084F345FDA89DE90C6456CE09214E11B4A02243CDA1BAE12A9324542524A54B480726A78002F0F24C55FAECC95C4D1144A92BCB6962B0BCC5528331C330254B53299504D835CC695916A1146DC5C6509A248A9E165646494C795BBBB952BB1061B83C8C6940833ABA41B22226412B29B90AC90F0DC8B248CDC148942C155A9DC2BD181ABF19379B80B1529346A124925240506926412B9926617E04853710365422582484626CBB8B5B56AC868E40D713C9E3B2320038CBA26C6C7A7525866B62D88A6DA03769EEDD4081025F9446CF091B8A94912B982A4A02914BC24451C35C65D88E7AF184D06359A5A92A1510AA57134FF4005B93690248F53E4E632A88E7190DC5432AE44418E90D592C950EF73D5B5240557A2A431949A9292F2983869B98F8FB00C7BEC207A548D8E3F3BA2BEAD4064461045B8C9B6AB6B6B5524B990A7A05179317131017134A54AA554D03478277E1ECF5F49536650E5B9812A3949161!
7475BCF70D4506924990F8811586D592D37904426079248B51B942A89B25258C20B280FA749B7BB299465E6D932F424425466734A64C692DC7C22C8B2ED64552D57C58D8BCB88A341CDAE904A632A5529AA24771E3ED8F52055F8FB0CF78C0CD472AD52A98442490094F0FE72921C8C36904322E5CADC6464B7FDB52492CF76B24245936ACA79313160B71464C9D8591B2D8412CD8F43A2FCA272354B140091DA2D8224534862A8253C1E189E180492849614A8F44787F9D89A9747DD53C49030244A9252AD22A9E44A39CD71AB23030C78AD3C4E4E8A50CB483EE1E4402ED707CCF506328D262947FB85F8D022A46AAE6AEC7C7A8F5389FFA88684CCC9133DB9FB9DA9146E6E5C32C927902C94C4C4854B2B855C89B0BC52280C94D2027393AC10513324B96FD01CDDE58124894CA692AB94CA68EAC1839214923A305C58EBE313E8C3A36E7053ABA1E42705AAB81BDCE2623644D0227C7C7CB8925CCC6C5B10D99A27B258028564AE4C48A2B9FA489471253CA1929BABE2D2E28434A1D247599454929197B73583172D91E72A3224508E496824D4E0A8546AA819194AB0436AA99BD04DA2564A783E24B52CB016AA341257B1410A00A13D6549F29493B31D08F284A6335BF3449693295C6E2D57C925D7F2488A125E8C5CA9520B15B9680757A544E8AA9296E4E595948467809!
F96705572B9FB06A92C57250B0C540919D152726E2049450629F321E592E27CD0A090F
D245220D8ECB80D4AAE1B146C6A796E917588B585F044F31522AC88240B54926BB9129E3C262380C615AAC85C52A052C8857BD2A2A498125E744080265CA2929395A44089520ECE3A90541B18A8849A5FC895C9B824A18F4CA1022BB5818CC6A7914188207CC824D4F82809742DB29EA5DAA620BA6F63E393B293DD8CDB894E16B926C964642E59A620F1623412B244A95083ACA825808D5425A1959404F0023407696FC84924AE4A459670E5B5203FB5F240459C942B91221523056EF75191C85C35B9965C5B2B2343AD5FEB0630A1C6276068E28188CD3F9B1EDBF53CD3EF35AD16EBF90A9105C35250A222A19DCAA4B4381A892B9328B8AEB55C19579D2BF44F42C365CB79D12519F2F52A552D643E486AB5204581009244A1CC25293608492AB53250469671C9B90AAE0ABD934B26BBE13DB5B9AE4500117672C241FB67757ACF2708A2325B53222445275DDF808C462693149552214D1EE84A2207E69224248942AEA2E5E6D2A4E5525E3983AA480170B82A1A570E653D2004E8098592405A1C097FB74C2691A9C95C256A357223C35D35F86FB96B0A30846196C91832CF6325BA35EDD2F3491F2A82762C4CC995CB555C28D068A0430A6E6E20302293915019267595332AC3A5E52552A9060AFBC05A2006F2197867B99CC4850A5FC255A80241987CA43E5C994AA670F3E1!
92C026B99190A2810EA5800E8125BA3D0943E6C7753DCFF47B4D6B3CD13C8508FFEE4545AE7228BEB80AB210D0909002734172241212E88C462E5704C4544AA53C7F852430571628E74AE464955C86280235E22A8442A02E50450E044F457223F9282424B4BF35974452A95C5D5D8BCA901061E30C596C03225BF3446847F9B2225757B95C225172E5F214B81718E8CA959054F0304092EB5F4953542A14312445A00A8DF75006E6CA49708117919412856BEE766E6EAD5C660587CB95A9A162833B81B9AE289761D8DD6466369B6D249D596C0D2254231515A5B8E6AA801BA023D01570021E482AA1524E93C8938495CACACA241F256433556DAE1CD428508E8448AECA552AC834A8E6B8A440197824994C4592C00BC018C9E490C952528A2CA88968FC98FDB603918D29113E7015695191EBD72A50230004CA2F1220016AA254D1E42A955C016E49C815A604CA6B417F242439E42F785D606E2E572A942A7303554A48864AD01F39BC55964B02D32477FDBAA8A8ACCCDADF814DCAD0FC84E851B758FFD6D0DDF3F977BE7F1912A3FF06870DC92A101C52A0442257285442B82B49E22A7C84204BB5AEAA40A8DBB88110E885A059342998245757F0D024254210C44A85440AA5B232AC0C6FAA7E50369BF5DE1FD3856CBAEB7BBACB9FD22B61B71F7D8BF56306D19DC76518A208!
8F5C444120298944E64A84AA37000B21AD522194A0EE0C840E173C532EF24DE07AB852
1A6AAB7685F9E0C7E568028072D743262BFA3942B60291E5B6CD29D1C49583C40802610424407125E10A95B972D7DC5C9250215182610A8444969B2B41B76882AC2691C6285D25A045C0111220B0421080505999D5524FA48450A2873464E1B76E127850898AD4A828654C8FE46FC8554A8504107A233737492897803942E8B822C981D20B40CBCD9527B9A31D4154B94895AC00E1355959113AC310769F3DCDE60AD14C77F999EEFA9EEEF21FA9123DF9109971838DE40817A494C06F254A896ABDAB6BE0FA5CB912104A427A0310C105E913E84E8AAB5C992449CA5D8F3C508AEB7A9891F253114A646508A1FB4232DF21B2654F64DDE4705B5656565C54545F74A8C8F50D55524A2E02C3D5F50DD023D51B24C0080915200433F1AB952014457049A9873C76D23A1816B31E07FD21434478A2C7D9138D1F55B1016B282B6B282AFAA9A80C4408F4251725B8DC22F03B127F10A294B17C97827B1FD448F96D6ECA49D42664CD62780EC3702AEF14F7B604912D2BD19D7E090C71646E28C35220B31581B8FC84AA36C85470C1B3560ABAF929C51A635E1CFD010D2A2B2A43AD8B160CED23641D133BAE73982D29D15447D49F2E3C4FDAA0AA89E37DF0C466C14E4262432041D48F2183EB0DE43A64C08B7EC293D7582009C21AAC761A0706BB3F277335D6B38562763FAAE9EFCC7!
8D7434DE388FAF31FA2F1C0B140EA52548683530CD77A2B5370DF7A05784EC28459E1316377DF6A9E66CC3F882C84124D382110BA051E90452AC353154CC577A4A7AC684C80ACB48DE363B69264C16C16A2699CEF6CBAA5FD93B6CBCB7D20B23EC4B313D224FC8295DD99C6C2629E53CC16A287D59432E5D08E19EF3A348DF39DD90A447736F0DD72CB3A4D08CBF4B3960D414478A2FBF44DE010FD62683D3646D46F05D1234D6798E5D8B1AA63C78E61C7F01FD0318CF044738268AC54C72C130AF6BBED0116F33C8308672624B3F0DD77C3DE0DFB67E153998989C0539585A8CE6669ACC74EA460C63D11FA83DD73D845F3A47DF34F2A44966389058559594E69786465A565855DCD0C49AC3A66999512CD7430D2E306D5548D6FD34E6777799978B5583B35F0B649EBE541E33D1E024433AD9E66BEBE104299FFCC72B206CE1050846EFF9919125235ADED8F4E40710B9B7264A3AD41649964BA6B999046992D4F3C44B72D58E2BB4E694E4EDB00A1EB634AF403122388770B33774E67FB579D9CD6186B9B53A22962BE28D1EDDBC742B25E0782529DAE5F671DE55CBC781E222AEA1CABFB2C8E5166C8C9696C7F6C8212DD9AF1AE228F5BC93FD5D08839438499AD2DD4F7EC0DFDA8209A69093EF308793DED1920A89BD51375BE4327FAFCB933678E1F3FDDD2713EAAA71BD!
25A58359ED2A6DCFED3D9EFCCF6209A2C9D59AF7314B2C707A26361A042593FB0DACE3
B9FF8F870483D44627D7D48FDCEA74E387709BAAFA76515868460D38188F044D3EE65474608B3DCBDCC92A2C7C6136582997EF78B8E2EFB4F819E90900234ED0C0909A94FAC4AFCB4852E605DCF7AAF20D132E6C16F4F43890888A6DCC663EDD816CB3DE75B783221B224663965257F72BEE550221074B820792C0A0A80A4AAAAAA979DCF6B9765BD075A841FFBFB8110114A34836D6C1DF16115A227DC585B8E153AA5FDF3BF04BF2FAE02112A48BEF63F8DABD6412C5F77E16FFF951C529C5855FCF9F9E6B065D588A2A9209A7C64E3E33ED86CAA95FCA0F143F72DDDA7BB91A778FF34309AD1F18AA63B186D4604552516BEEE94E572EA1056852374ED9555EB9E4708E1F1B76B3B8122ECE5F3DAB7DECB2C0899A2B1F141474A9BBF103D5EF11B405495959AEAF47A58EA68B2B9AABE20B91A21B47CDDF3BB76ED8ADF3586510150746C714EF3D5CCCC10CB541095D9A012D93A4496C2B7DFDE94B6312D81B3F35871C1B56BFFC5028476EDEA8569C50A9369452F9074E01AF86BCB5F054F55676616CF5E891EF75D81667A4AA5271DA287B7DE139D12C4ACB0B44D09C1C9D8CEE4EA1FE3972F7F7E37C8D00A6008C2B4A28D03147DB0B30AC3CE801265864CDD4E841110D90E44F8FB429C1212D2C2523705071FAE3A5CFD632F92213C565CDA05085D320149BD568AAAD616!
166666564DA7B1914867B691CE2CC7C045875465A66E4A0D7B3D75933838B9EAF0B555CB97EFDEBD0B4DC13846A64B2B4C5D2BDA566D3CF0727195E5D3B0C2B17C465467044478977D5AEA8E54A7EB694EA969614E9B12C494E4E264D6F2E52FBDF4D22E9CA34B9776C17409B4C8D4D57A61E3DF76565992B3AA0B0B0A2C447546408477B766A6ED4B081E4D4888774A4DCD826C9640A1BC5CFCC5BAE52FBDF3CEDE97760345CFEEDA7D09E2348BB28662EAF1BDB0F1952AACDE09F259C8B1D92AD16C47FFCFB571F0A10D369B6710CD6D7D5B42B25EDF111B1B4CE18C8E1EED3E5A882C9178F0A9E203CFBF0410BD04BE1A20DA7D69F7EE35673F5D11B4706950B0E9C28103871B8A59783E7BC08FD33AB2918068FE4364F95F7FF8C31FF689478383474D148E6F776658FC5E80A8FAE575CB81A2975E3AF0D4B5F867773D7BE9D94B0B9293D7F66E5EF4ACC9D4B30AA4A8AA3BAD302C33F18110590825B205882CFFEBDFFEEDDF765028A309A684510A27CA29332B3E412C1EBC7616AA7BA068F75BC9C9DFED7E76F7B3CFF6FEEDC2AA552B82D7F4B27A1A9B0E6CACAFEA762A0C2B0CB1E03D1FB357A2599FC2E811371110104D7BFD5942FEF06FAFED181DBD41E17038E08A125C0AD2C057DF18BC76E0D5E7215EDABD3639F97F763D8B22E8D94B97D65C5AD1A35D509C7C61!
E307F52EF16161CF649E7CD0D09469281101D1130FD1C9DF6DDBF63625C174434C19BD
C8898F0DBA9E898AB320873F6DC485E8A5775E494EBE8A20DA1DF40E50B49BB262554F63E235BF8DAF3C75363EAC9075BDA0F8E4E410119EC806D299A570DFB67D6253D4A838E8C62005208A6515225FED90FDC757714BF4CE4BEBAE25FF0DE9D09A67DFD90C25DA6E8088F39F2DAC8D07FE7C3A012A39D3BB99C916C213D9344459FB36BD106C8A0A164306BBC181E2DE25D30AD187AF82277A0971B4EEC0B3CF8EA5B335BB2FAD885FD5D373ED33F6818DDF2D48480B639958994F1513D5D9E304D1EC8682CC7E7D1F7B7D6F6C7054D4C51B60A56F50A238E2A0EBD55688BE7BF5FD82F7F18406F8BCF3CEB3EF0043A0469776ADEA8D672537AF3AB0F1955712D2B29CA24CCB32EB1FA444D31DD9F8B0776E9CEA7DD36D647BD2207A58D04C1FA6866D7BC5265314452C0E1AA4848E8E3A38B0C2362504538200A25777FE88430418BDF3CE3B9B712D5AF36C2FAB97B3ECA99EE6031B379E4870CA723A673A9AF91436C9FAC78F946626209ADF1015BC1D2B365D1C4510DDA084F67306B35961A909C1371C1C5E79F5D58D562502297A67D12210A33550E7AF580591BCB60394E8BB0F839D9E6175F798BECAAC9F6CFDDF269468DE43742CEB053105942834481C44A1845EECB9187AF69FF10990CEBE3C0E9EE8C7575FB226B477DEF99745EF4081F6ECEE15EB2EAC3A5BDFD87!
301205A66BA1E1FFCC3750A0BAC353685123DFA127FA6BBC24C770884AD4134A35D89D0ECC41DB162CAC5A87E1308D18D504A540F8BF36E75FC268A7870F0CF1B5F5DFEEAFFE04D45488A56BFF3CE97CFEEDABD6BC5850B170AAA5769591BFFF6EF67839D38C12E692653E153C593ACFFDBD3DFEF8C80E80982C87217224BD6DE58070AE762E82814672044A33DD7BBDF459E48EC40B906102DAF7EFF256B8506A6088468F7AE5DF1EB2E3C55FFE22ADF751BBF3BFC49F0F5A33D2E695194B48293F75FFF84279AFFE9EC58EABE20CA6854A897492C06862E727A583D2C2764AC1D2E26FF0D205A9EBC710CA267AD0CED8AEF4CAEFAAE8705966871D527092FFAF6A79DBD48611554119EC8E620C20FF9061039ED0B324599422F52828228FD51519CA33D478F1E45100D9A0EAF4510BD7A1899EBE75F7A16A6DD684CC8BAE4AAFF5AC55A7561E3DFAAAA1A139C9C7A96755FA498AE5611D599AD418425161424566196AAD7636F8C4651BC4C9420F0D7A351E78E721262C5B81245EDAC3F809A1B5F4DFE9F8D7889B6EB25B0D5EB5ED919F21D6BDD05B0D5FF5555D5CD714A635DE75CECA77C513C7B257A5831D34164B31E7436CF219ADEFAB1DC362786245717242686142650A238948B17219BC16DD451D6A6A0E0D4D44DA04451F555AF2CC7E3FDC3C96F1D58B76ED7BA757!
F7B2BB9E0A903F1EB20991DD818521CC28A77728A375DBC7871F03ABE4BF5FD4E9A874
DFBCC8B04444F164496AA90909077E19AC9FA8C1375F1A26930487C71F4A28973D429BE3A240B41E45B5F957CC04AD1C61F0B761EC6F7A3BEF6EF0756AD3BC0BAB0EEC0C66BF5C5D59C78A7673894F31729A13D21E649202294687E42841C754166E17B6100D1B2E465A320256210A4A8D1D1514E6A6A614856FC68F060777D62C18FCB5FB562F4EAC6F77F7CFFFD570EAC7B7ED7BA03170E1C38F0EA2B21F5215FC5A7A63905F7F75F0C5D339A3C9512DD7AE410CD74179F59EF126423104D59EA63F589998561EFA1E37D548F82A33671AC31EA4061555F4F4D080EED2E4EAC4FBCBAF1551480D1F85ED4EB2E20885E4D2B280809C9E2A4A6A506F75FECEF0F0D7ECA32F929CD2D0444F312A25B96AAC4CCABEF856586D417B844698F72CE218228A326B1E912BA1B4CF9A4AAB83EB1FE479CA2E51B972F3FB0FCC03A9020747D06742819E8BB1EEF04105180A150CA5A6C1288084F346FD3197E68D8A7AAABDF7B0FD2D23296EF39A8EE01220A25A1C7D4EF109C304A7101210AD99958BDD1AA4407408B802090A203AF3EF35D48417548419853AA53563CE5627F683F65F0872AC213D91E44F064436261E17BEF15D4EF2CFC2AAD87330A52142C0E4E65052FCDA6049B5EBC860E2B531052F0DD848CB6FCC0C6E5CF1C280C29C84C0E599B0610A525502E0243A1832EC54475!
F69B41F470C70FDD590F63D364F3C72648692199608C323333DFBD1E2C168B834763631362972E0D0A8EFAE1ADEA8282E4EA6AB86E1C7346F89F0361990599D59905D56159A9ACD4B484508A1765A87FB0BB78C64A34E78DF5B8C66FAD3CE6074E536F87FBBD677238CD401100F187CCF732C126C78AC5B1E25888A0A54B299C6559AFBC054F42648614AC058E36BEFACCC68DAF5C85C7685EE6DAAB6FB128B14EF1148A576868E8202B11C3BFC53DA74BBE65995C8908881E1544337BFD2F219A44E7268990AB89909A3201A390C4CC77F7C5526281A4BD2C966F7CCF57AFA4FDEDFD6A6B00325908A38D61D50556847E2C5C56FD146B61B6532A056CF51A8A03AB78023DD8048808257AE2219A220A380B1213513683B416F25E6AAC98122B7E41ECF4EEB2EBA9D7BFFB2ECD6919CE4C21885108724899609270710ACB0ABB5A984559BA301E4A7CD021CAA06F2276CB62C60B347420FD3B106193B713CDB9942620BAEF469EE9EB7FB11D660611563D1A7A1A284A0C4B0DFB2AA43A2C01B29938E885843497D4EE6E5F9765AF2080F040161BBC1018EACCE4EAABCBB27EACBE96159F9D1D9CBA29F862FFE060A8032B04CF5DF091B7EE4EB72C13CF774640F4644334D911ADB21242BB43AA1213C32E7CB5362433318425C603AC4E6A77E367AC1FAA7F744A031D424254806A!
3574531D56985CFDD4A727CEC65382E337C5069B42071D6E7CE91B62F543F8E9BAB009
4E9EF0448F3B4453A4B3497BF1C722F1BA7830EDBDCCC4FAC4C4A720A10145D783C4204541B1099CA3BEDD4F3FEDF283CBD9ACB0B0B01FAB51CAC32DF58F5959D505AF343EDD729D634A4848080EA6F4DF180C1D8C0FC1CFE1653DE976C31D3B7F9BF044F306A24922D129C88192F65E483154EC21EFA112ADFABAD8616110446C424FC2E851D675D68B2E2E2E4E9BE20F7CB731ECFDF7C360CA3AFBCAD9CF60665A302538383821C17471D081E2D0F394D700D3CBC8FE6671F1DD730C20AC4E124A34DF2112DF08BDC85A9B995990589DF9FA33998599993F382CBC1114B430489CC031994C1C0EABBBBB9B057FD0F9CE20AE3BC57338519C1F963939512814E0283E9E323838E8D073D52EDFC3237FD192254B46EC5F9EF0F9D8AFD6626D6B10E1B23F7E52AB095BDB7CE72B4CFC4296A9D2D21D966E8D2D6D7C235AAD0F1AFC01B7C81ADD469DAFC801E365788893D8011F46F46E415562E6EBEF6C0B2BAC2E6439048B831C162E0C02424CA6A8D1A82856EAD1A39FB1D2AEFFE0D2DDEDE2628AEA8AEA61A5F624380C0145E258CE2832D63D4FE530BD72040281D74064FEA2455EED1F3CF7EF8BEB171F4AFEF8576BB1B63588705CCCD8C4C766EB99AE277E156CDCA19AC7674C051136664A2C3F43EF96F58A59DB026F99D1A3DBB0EC5BA0440E3746473951BE0B4212130B9!
F494BCD4A4BDD948A207258B834884219A5503851A651D651DFA77B8E9E83E8F9ACFB5CD4C5F3BE2C8E499C0D108981B4040AAACEAE0E3073F45ECC818101E6798157A45D7EE4C0C0D2C8D0816142891E5967C79D8D8D8D2134F1F3EF7C0DCC7A6E59FC35D381E8D6D8A968C74F266AC5D28CDD53D95B3FDD8201448337FA4D09148EEFBB60880A7F4C08DEB7772F945C0E0BB3D1651032D6A8A9DF347AB12BCAD7DEBE4DD0E6DB73CED9D9D977D568D0A0387B803208B6488C2872603D75DE789E7E5EA0EF603BB7885A74CE5AB863DFF2D939C1AF369EC8E63C91151D6CAC55D9323EF3AEE8FCF26B3DA0549F30C2C37C37238E23649E701ABF9F254AE489826E50504F8738380BCAAFABD7539FD90B757B4250B6034C8011A89169F45C685B8FE99C73770F27AA87734EEBDBDC63027CC48303A162902231A2C88195DCA96B66777534B7346BF56D6D1DCEBAE66667B6FDD3CE9FFD6AE3896C0E228B15216C9C1E6CE2D61D4B6BE315CED8798CA703118EA1D571E1D1D060FED939D9C69689E1B70D56257208DAF7FAEBDB76BC7DBDB020D3695B6A2C545CA909384168727018ECF9E3C0273F704C94841EA0881305610AA5A01818A404413E0302E3C517FE48EFEA6AA36BB5DA8EDE0E6DB3B6AD4DDBDCECEBAC3DA7253CD10CABAC69BF6EA2D8DC0BD79D7466B166BDB1C63!
B34631AC67A027738340D0D3B0FBFDCAED37B8DA060E6D0D9A2F6F6F52F1FAEAF6F301
73BBDE0208EDDB1EDF5D7607AFBE85BD54E9BF6C68A01A378CAC26CC008C2E10A65C1F181536BE34170825D58204C1453FFC5D0C16107F1E0F0E08D3537408A00BBD8B4FFECE7F77799BAA2DAA2DAB4BEBD00D339F8BB0A1E119EE8114134263C65089306E486EF9EE6DA7C4F3FB87942239E79CA23EA8C7B2D4B19DC29AE5F29A247DA41D59DCF58B4C42E3F3D3D3F1F2A2706CC58B46451FE887E815350D08ED75FFBDDEF5E7F6DDB6BAFBF1094E6B4E9686C509018CAFBECECA50BB383C490CF82AFFFD16B411827780527FE0727532A07CAFD739C73AB4C1487C1E1A0A0C1204A6CC2A6D8D8F8AB9F80F46857F9365F68FEEC82AFB6A747CBE9BF7265D0144528D14C209AC6A9A97E7EC2CFFAF59F1F39B267CF9E2347BEFFE6DBF53FD597354002AA3FB4FEE543870F2D5E7FE69B95A7BE5DBCFE08DCFC153D65B64CE75459F09AE2C5DFEB04035E395E1E8C7C00C78369A48F40F99D6364324798152323034C26131E95E62F1A487D61DB364008387AFDF5F7DEDD248E4D75DA0752244E881A5CBA345B1C8B725B42FC75D30F692CD62BD79DBA9D56A1935367B9B058ACA77FE08014390065099BD66DDA1B14FB6EE673C79FD6360346CDBE179ADB383D08A4CF5E74995A89CC339E2C33BAFEF2F31EFCFC54CF5AC64E6C774711F0EF8459EFA2F613ECD62D3C7BDCED91B2!
BE1AF4011B3F53F098A740DEC3BA0073C3A137DFFCF64D002269E5F7CF1D2A831C82359495D5978DB99371C30C0EA5AC7EFDB7DFBCB9F8E56F4FF9A72F59B275F5D6D58E5BC76249FE4805D3037462F51274B3753583B104646335DC5FBD289DE9DFFEF2E18686E243EB17D7837A2105C3AD7803D22EF46576FEF59BE7DE5CB9529403D26307BA931F19999F3EC2CF11E8E9462FE6482424B3480FEF3E94D3BC8D0623BFC640EF76DAF61AE8D06BFFFAFA7BFFFCFB57FFF99F3FC4C63A6D128BC1E8704287973A04C727C4270427C4A776A765BDF5A7B52CF1A098825AA9831382839D96553B5186C13205C5EE5BFE7E1868586CDAB573AD97BA5AB5ADAB7A7BB42F7637BFF8E282652E4DBE532BD15CC6F14D0FB90741FB4B8827793B76ECE7E35CB0890F6053DC394A061ACD803AA2F1361A74B038CB04A76AFED9FF8B84A1ACFED0B72BF7087246D219F9E9768C743B3B0623DDA33472A434D2C323BD1464C02372C0F9CD43E03FB0FAC5DF9EAA18F148672C6230D075517E7A247A417A7ABA1D0267098301DBBEB4C65853C12C2D658ED8D9798070303DEC60C130D92D82DBC8740415BC7B11CCC94F079D498FCC61B3EBEA043940DFD6ADF09C9D9D5D29C80D484D0D288EF1BCD1E8C51F311A9923DE911E57987C03DFDBBBCFC83718F87C636BDAEF5E033FF4BB6DAFFDEF!
0FFEF41FFFF1D1C77FCF4A4DDD4B817C969030389C1D749DD5D6665AC131999A7C579C
EBF14DB8024E1BACF697830E4141F1D79D52570C82F3A6ECDD9BBA36F99F67AFBD92907656DBD9D8E4B9A2B9B1B7F9C5A6E6E69EDE1EDFEEEE6928D1A319233CDBEC63F9F9F597DD35E35DCBE88A59C68CE8DD6A695C34EE64286C7CB90D65C5F53FD51F5EBF929DC31C40F654A7CF89F448CFB7CBF7881C8984FCE02FA86056D4D5E5D4302B72E815C8C456B88F2017C2B05B041AC3647AE47BA457E47855E48036EC115478555454E4D4E5E4D4E4E4D0E16F056087901A61024574449107D0585A0A334B3D3CF2010D00267F04EE013B8B90C70163C38017D9E10402568BF23D3C803D0F58C6084A6190BDE803F05DF94888BC8C5E91DE23CC2E3EE063E47B42180C86D7B62115DAF6DAEFDE4EFBFBFFFEE8EF1F7DF4D1F534A7048028387E347B7858ECD2E2DC217AF9F0731D0228B29C7D3937065107C720EAE61804371DCFA238640F0607EFDD1456FD43FC82ABD79CD2BAAF7CB968F5A27EBF171B2FF43477BBBCD8FDB4CBD353B7133D76104D2645F79CE0F76E53EECFDB917F5624A17E096B941DFADE19FDD6198BD2D3472AD066AF1841CA9393E39543AFD3FBFBE780665480705480EFA8A0EB738C3063A474A402C8600AFC73EAD87AB6BF5EEF6FCC0185C8C9A903C8602939233975FABA9C3A3ABA5418012500082064D6308184D25220AF0678C06364A4D4C31B10C!
36B2C8F1C3E1332D4889119699D13895255E9C8487A297A5B29D3080B30D2730C46A391AEEFD0C32D0A3D9BDF37C2A723151AF1EE5A711D440821F4AFAFBFB683F5F73F7DF0D1471F74A7A5C58AC53782834DD9C3140A4B40EFF8F4A7FAE2D38273DA8F0F9F3051707C1041416B20AD715243AF640F8B29B17B9FC972E9661D7559F65656D8E9CBCB3EFC9B5FAF366A55F78517BB7DBB7D3953B713FDC6104D37B09FD53A66BC1EC2C6CA67F39DB693BB4D7F166B278419F98E86C5ED6C48439115E02B4065FC8106B8E6A094C1F6A45BC3009A031A528136B71137B0B0F9002F80445FA7A7C39D484002CCAC078A7498C0FE9482F0D4E9EA6A6A408DE8747E458D91CEACE04312025E6061B0903AA06104B6F888574D0DBFC6683430F97C2662CBC04482D537D26797EFCDAC310032DEDEE970D70E1609EFA3EBF5FC11782D9DC91CC2F9D1EBE906BA1124A8B51517217EDF8AB67D2FECDBF73B40E877AFBD0D97A31F9C39F3FF7DB0C0293516399F604EF6407FB06FFF80F3E19DC5C5C7DB04F6C555D7A20607B3AF380C43DD7F251BE48892901AEA00140589639F7FE683F5DF2E30253865A5157ED13BF4E595A8DE4B3DDDDA9E5E9396D533534FF418575DE3B6C6DAE76099A05B6366D932D68E8C4F636D7498F9F0CA0A109C5226A287EE0FF8E8EBE8483DE87575FE700FF!
0A9E1C3464FDF9CEE5D039BB50EE6D081083AFB261B9EAEF3835B03884BBA871D2CA3A
606128E07928A74B03ECCD21A5858FAEA251E004C4D5D8E01DEE9596744566664A406DE4C07A86A8C06C428A42084D0488DA1A6AF8FD9D757B3D92EBF0F3EDADB637329132CB2274C7CEF52A6671D1DD18716E4E5ED3140E77B19F9508D199803DECCF39E0092C1C0ECE3F3FBBCE9ABDE7EE18517162E44086D7B0D6E77B03EFA3FFFF11FEFC6C78A831C28148E29FBFCC504D6A5A1B60F8AAB76B6083A7C930F9FE00C0F662357845A8F408E2809ACD0EC2BC3C30E83E2BDFB9EF9DAF54DFB51D6F5AC67C2BE6A32F59B560C0E9A4C2B7A7AA04E9BA9277A6C4BF631056A80B20935E24269535C545F7FF8F05FFFFAE673DF1C7FF3CD438B0F1737E0BEA778677D3DDCD6EF3CF4D7957BD8E04340147200205013BA5E57C7063AC0C7D27179A9CB816D0B06D560F0F3AB6BBDD929DA52C7BE5967A0B78AD87E6CF8ED1BEAEA80146008F0296596320D08BB1C7E4D0D28C34DDDCD9B37457AD8E6FAD61A8F1A3A1DCAA51A500FD01BFE88C708BF860FE23462C0C3D393C9671A3CC744049E1AF1DE0CF6D993DDDA576380BB9BBD4BFB408F0C7D7D1ECC520FF83E7A4FE6109FEED9C534F61BBBE85D9E6CBA71C8E8A96F330EF5795FE11B2E19F9AC589CA1850B5F0057F4AFC818ED38FA7F2D7B3A750740142436C5870E0828C1ACFE5081F6C471FB53DA96E34FB72C687318440C!
2D057206B38122AB120D015141BBF73AFDC7FADFDB9F087B66DBBEACE4C6B6FEDE9EAE9E0B3DBE6D9C28D313AF44E35F0CC080DAFA94BF1DD81A287A2A724AC1D168505DFD2F8ED6589DCF1480EBF5AAF0C09D0DF8D3F448D4BA52A7BFE97C13B9687A0E921F5C68EA4068A06E861CD1AAF7D4EBD97E9DECBAD656766B5D9D675D2B1B404232846AA39A3AD018D8AE7DE09081A89BAD37E145401FBBCE50C31675D619D937753A3F581C88448DB1AE0D2A6F3A9006EFF50406EB602E2AA300A256484388263E0E151F4706E61B98A8D8F2F61ED9BC79B337BFB5D560B8D96AA0D7190D23DE7CE310DFD84FC7D359FF1073A08FD90FF96CB3376447E029F5858556868022E0E75F5F7B7BC76B09941BE2846060884289E70C787550C409FD836D1D2DF6CDC73FB3FFD4DEFED3DE6107B0DBD9701D862C3648E1A40E5D71C81E18BEE2F06550ECF3DBB23E5AE6F4CCF27D2FC5A6159EFB52DBDDB6EAC59E5E0EA767FA4A74C77B588F0988DDA9856EA3E3F6E1035930F4E05E736B6D9DC550EB0CF22098B56642FB0B8C0F1D86D9B7EF8E231E1F063E3E9AE2165E6F596F273A67D47862419EA6A17EFD9E3A0FBBAD1AD4F0B2D5310F8AE0687800931D637534CC43458EDD8080EDECDFA1DBA36777F80BFC3B9CD939023434C65F60E4D3D9A0296049EBF49D3A3D5BC7068DF1D3B5!
B2F5107E3A746DD5B7DED4C15C40A7B5CEEFE64DBF9B404E69A95D7A692970545A83DF
EB8344075A0599ADB50E04E4A627BCAC135EBEA513E0F383A407B7ADC61A76AB815903C4F8E96FFA1940D1F4008F1E505A013A042AC4F4C69327C895C766436BDF08628ADFAA038932E8FDB474BED1D34F5FE7E909D6876EE8A21B86F8FDFCAEB6566D1B7FF395BEBE7ECFA1CD4B0D5D6B86FAFAFC762C1C672808AE3B5EDBF1F66B3B768C2ECCBEB1571C94ED104C615D0C3D4FC721123C575FFFA9B3AFF38943878F473938801B420C655F41E92C3E75387B1841940D25BFF8F9E79F79E6D56DCFEF15BF109BF655E8250EEAAD6599FA2F5D99713B11760BDFFE7707909B317C036396DB6320603FAB8DEEEE19701B1B1FF772E7D66C85069651651DBF756BE2902D6C625F0376A7CBC0DAF0666E38F44D3BBBA36E249DB11AF839B87AC912CD6AD41603F8A05B08065CEC985E02F69EF623DFAC5C79447773CF1E1DDB5FA067B3F7EC71BE09F7D902410E14376C880E1D5BAFD3E944223F5DA7CE4F0F22045B17F0F2D389E075AD9E9D20565B44A2CB0050291E7676A83EB72B2DCD47F798A05190D13C3CEC989E3508085D5DAB5FEB4DD11636586558881FBAB4D281863A448B9EEDE97713118424C8CF4F0B90C09D2E20064002BFCC677A82530220D906CF21A6B7DD10BC09FF467A20CF13A843CB686D6DF36CD3EABB8C86B6D636BD96DDCCEE620EB56A5B5B7B7D53C7185!
A845314B470C71F76ECD891BD307BA93821280818E2F4849E17440D06B1B43D2D3BEB8B8B4FB5890EEDACDFC91946860881333C1C3A183A98CA42380D0F005588A27DFB963FBF6FEF0B41E2A017C2D6B29A7B7A383D3D26534FD4CC94684C1E6E8D3910B4F9C71199380C615CB76EDDDD3D69CCF6620DE3F7EF9719C74B6EAB03B65807E5343460584319189DB2C32FAFFF5EE40F3EA52E076FD2430D74A8E1CF0EFD65A096B8ADD1AB51DB0A94C11E2360546A6EB6AF3CB2F294CEB9BD5DB4678FE848FB1191E89408EEE87447D8CE3A1DC248D4A2D3353BEB9A44EDED2DEC665D53336CA836D81E7AADAE89DDDCC9EE14358A448823BA1E5298B1C60EC90EC0E361C7007B528A3EDD8E6960DFACC901F76DB7C803B406CC30386150136F6FF0469E48E5408A40CA1095A03C6C3600E0095B1DCD41490C80F0F4EEC39B07E9609F5159062E1BAE9E90EF9AD95AFA10BD8DDED5DFA5D7B6817346F840AA355CEAA2B7B5797679B66A9B3BB56D06FE15EFCD570CC0509B76CB36C4CE583243E1B070C7EB62C490C3686C90C30DF0421CAFF35126045154131467C59F081AEBC12AFA3A0CE3A96C78783014AE9454975004D4C0F040284ED1DE7DFB9E7F018DCF0EDA54BDCCB7A7A7BBBBA7078CD14CDB89EEB4F09B278C5FB8D32B3DDE1771A7B711EC6D0376679883B9A1FEF0E29!
7CFFCE59B373F3D545F8FBA91AAB0E2E29D8777D6973560D89DFE06785759F14EB814D
72F5E7FD33F074A5E4006B5B8ADCE735C0DBA03B667096C3B3B0FE0084A5EC692D58C743413CC503A2A8F214119E96C3039400FE043CF01E96177B091D000472D221DE2075802ACDAED1B1BED9B448DA7E0DAA2756E696ED23583147542FA6A12E93A454DCE28BF811AF13D22A1A462823346ED831EA5E81B947AD82D015A6F8A6E82C7418D371E1E505C79F78D6CE6D77802377E9E9E7E9E48CE00244F4FF80B73D8C86101A82867823C21A8901E81470795E233FBE8E8AE11396723DFA0071BA6032CDAFCB45A604E0B7F50FAD3032ADA5681A14BABEDD5B6761957B4B5B23DC116F5199B21796A5D362D4486685C89162ECC5EE8E020C60DB34382D8C1216870345E3C3808F300A6AEB63FD6D7FFA943DBFC69FDCEBF4739643B0C0F0E42FE1A1E1C46E9CCE5E2B0C3952BA1C3035EFDA8113B2876D35E6069F0469038ABDAA59BD5EDCB319958AC19B513FDBC17101F9477579E268CAD826B43D5E1337BE89191E98BF223E96C9DB3AE434FF78A4CCFCF8F444DB18B50B761A43107EFEE49472DFB9115397410873D3A11185AF851A7DB79E433D2D3972C418C2CB163E0690AF525ACC605C88E864F76E07B188BF019E9E963EDBF0323917C3D7C9ABE83CD86ECD40EE4B4889CDB9DD9CE227B917DBBA81D31D4A26BB717C1B76AB1D7B35B44F6A74E9F686AB1B76F693F2D12!
413283ECA6852DAE038874ED8D9D7E6C340F6AF03E28A1402170E95BA459520AD5189001CA5103528468F1BBC9F664E6334160608EDFCD2D9D6C112CAC59D404E8742088B4464FCF2E444DABD613D2186438C85250ED01417440C6D3C884CFE0A33E0B03BC92EFA93768B55D9E6DCD4DCD5DBD5A2D084FAFA81965314FCFB6B6152B7A9B2F683B45179A9BDBF86BFAFB86F86BBADA56345F48058416DE91A1A0A0312DCA4610C5C622573D181F1B84E68022F5467545357FD6E67B4A7BEEE9A6669303D2A1C8012F816020DB01ECB76F5BA8C3F095818141AFF3FD839008836283C49460C4D3DEC2B59F74B33EE3403E5B336D4F84DD4D69D8DDFD8E30D4B9545F5FB4F3101447652020C53B173FF7CDA93D02667E3EDAF0A893D923323D3D1FEEA0DE03668EA0AEC3D9794F873FDD989373DEAB228759E19503A5128E13DE309BCE586407851352967C3B44086CB1F474FC1E4811EA3902E50117843F0596A41412D78807D812B87AA03CD6CF370AD03603D9815445F712205703E4D89F5A692F6A0166742DED2B4FB58007A283DB766E11891AED1B452B1B1BDB45203C2853407D8E0C36522EAB28C1B636F251E30ED31B481D818F82A45677B3F32654F8C07B7E7E29D45175E802F51ADFD313DDE51BC059FB41E681D0C2029B7540265B8FDB6C2DB8754F1024B0D990D2C0E1!
406643694D0FC98C8F6A353ADFBB0F9449DF6AE86AEDED6DEBF5E46FF6FE120CF3509F
1601E4B902C447EBD7FDE205BF5EED0AA361CD97FCECCD57D618DADA0CDEACBDB81F1AB3D58B168A1DC6070E2DCDCE8EA5DCA09828A32EC141D6B6A07816ABA7A70DFCF1F56E566F0FEB52F6B9CF86B305FFF87A7DEEEF9D0786C5A9F01C64B881D001AF8BE7431D821C502AA40CA2D4F6C2A6EAAF5851DA9E4B83A64BD36F271ACB4F6598B9FED0FA6FDFFCEBFA6FBF3FE53FE0857749AF5E1D0DB4440E30732A505F12528548265DD09133E001E4541873E8022F345C2AC72B2792995327A8D3C31644BD035055E740C19B93539193C37487ACE551510A3E076953291AD4905E8A3A8C46F04E01BCF9BF26DDC3EA6851D440D08D9049BCA14462F2511B5FA447241F4ADE3AD872BA2D90CB4070569EB2B70782DAD1B0601DC84E8BB35E2FA03B3BEB409C5A80AC53E8898EF61698A11708A024BF89B44874538724AB53D7B4E5C52DA24E5480233AC01CF3E15BDC44855A1DDECF00D6D8D0D7C7044FC3ECEBEBF3F6E64322022A8C235041C1B3FA0E6D0750E40C483A3B37B39D3B9B2F347536FB75BED8D9D4D9D6DBCA070BC44405D96658699170CF0FCF6F50D7C3B2FAE0132F19FAD7782F5D9A3F34086A73E95217D463FD9EDA663FC871BD6D5DFD6BD618FAFB5BDB56685B9B9BFD7ABBBC97F605E355FD5D3FB41078191A5EBA742940340C96689042F13D0B657EF615078!
A433040D41BC5498DDF140F9754CA95A8BF3F1D75E2D43F7EFABD7CFD91610A8BA37D9A029E287420D4EB7C68B643361AE6889A001045A96B97B1BA5DBA57B1565995C872DB3C154320323F2DFEFDE7473C729C4790C644222206F2199103395E5E5E39CEFE02E0018A67301BEC3A41C71EBDBF80EE2F60B381132F26D0611C491F410DBD1546AF110F0FB02D9070F4F073DF73938D3A9B6A46507F01F0861A8B99D68E4B7ACEC848C5486429D3C88762A9EE3CEA71F446820305354C9BED001D0FB09F50151BF5237C787664C41B9281116D5B11945260886F6A5B4EE01CB5B4B4E85A4075103B0201000E40415A43AF71F60359D221E9D2894E746ED1F9758204F9F941650519AA73CB96A6CECE4ED00B4FBF4E3FBF2DA89263B7D60142AD7560592005415A82E23CBF0FB29DF766A66104BEAEF7223B3BEF11A6014A7A01BD0BF7E9CE4D106C7ADB1630439D9DAD9E5D862E7E9F01201AB1B3CB47DDAF9BE1D7019AB6798C46BE277F040833AC59C3BF04F05CEA85A2ABB5152C746BD71A3E14F56D60AC6119C093567BA18D0F49B20DF7D8BDDA7D13095AB874E94287ECA15030C608A258948E28DDAC844DC14183F1F10EE2F82853D4454E3C446A2A2B7E6828DBF75DCEB2EBCB76FEF71B5FBB0A6EB0584F2F380ACE7AE8FCD3DDACAE81CF58C1C11428F7878791B77E61D!
33F97817CF5B25E5C508C9A7E704B83EF6862BE85EFB08FEEE1F3A05A2A3EF4E6910E0
14A1FE06804E9E79D055E3902E73D2D2D475AF61CB1FFFE1FFFF8FE0804DC87D883B60A6C1CF8510330036864941E6F84015FC4A683E1A50B60BE570E1B5914E44F5A99CC1C36608338F360324BD373D8FABA3A0333078A21D4A007814A727C21809D1713EADE3E54021BFA809848EF7C6F3E6A1D36D051B6818AC868849AA5156A2A00C10FB06814B5AF043542AC803B6A6277E8D9F622761B1B89145C45F65B10452873417A6B63A3F2DE7A450515F22CB0C5759DADBD7E7A040B2E476CBC73A1D50F7D805FE7163F600B9E425F8A0F4294EFDD87CB26B06D1CF11EE9832A0CACB0D60FD884F7EB3D3BF185180CC0DCE6CDDE205C2881F199DE783B11C890AEB3137D165BD4D9894CB4166681745D80B7B5B5F6B6B5C2B3467E3FFCBB5D06AD5F9B5F132C132DADADB3D5CF93DFE5B7E5C395AF5C66DDA168294C0B97A2AD1E3A309C1D994D8915079938A32EA9ACD44D0BB359F10B299CD0C1A121CEAA54166B55EA2ACEF030C7E57A54BF89F554D1D76FB87E3FB8299E75B619EAB4A1A82F5CCE72863E780B0DCD1E86E5398094BD10B4A9F0AC4BD385AE350BCAEE0E071EAFAE8AFFFB9BDF2FFEFACCB71F9F79F3F3236C8117E4162FAF3D473EFFC73F8012FB539F7F7EEAD4A9CF4FC00DE48953F6ED47EC4F9D3AE2DCDE827EECC0066C71B0240236FCD4A1706ED28197D5!
B18D91235E48FCE9CC212FB86D439B4D64AFEBA08F806C807418AD198B49BF3982BAA5E9352823B1D950F5E80CDE4BE14502A311166C1C30E8DBAC5DA27D6071FB468C06E61092294F3ADBD3D8875A6A81A0E6E6E6A6266D7353637BE3E5532756B637B1057A9D962DC2EDBDAE19D0B26F477E1BBE192026626B011B6D2B5B0BC2824A70109F4E2B41080FB0277C3430476B00AB0C9B18F86A86D9F43E5498B7824EA18B688B9F27DEE4D3D64AA7038A4D5B44CDECE6CE2DF63A364201E1A3C3D394B613572ED8E2205E3597F890B560B1F071788B117FB39D77FE88014A392DEEEED96D4626A8207C5CAB1FC80CD827800A7D83CEF64EDD960F2FB361D6962D5B2EFFBF1F5E6E6F85BF2B2FEBC023AD6AED8E9D48110E51E4F095ECC8E1E0D8D81BC1949EB4E034A74D833D5F7CE5D2F859779BE912CB291ED7A2F8A1E1EEAFBAA3F297FA867DF07F3E3FF28F50CA1A71BC0BEB93539FB97C91B5CCE5E8DAB5DB76434E1B76C095081DA1E6EAD9A5D9FDBD0B1A265456A821B86CB1BDBF00C43E47D0D1B2A7658FB3F391EFFFF2F1FAC58B3FFEF8CC736FBEF9F9A913A75A103D630481DB0074F6B4A387DFAFFCFC9B13DF9C821F7EFBCA952B4FB483DB3805DB4A6FC47F97234CBE97D1789EEE6584D249A0A70F8D78C18CF34C7047A81F9C691CF160EAF523E08098205CA03A!
FCFC25F946648C51C50E994FD734A6476DF0DB35B4F14175601A02050223EC6904B48C
500F378A50DA68021D6A6A84E21D6D4CB0D2509F899A5A20A700386CBDAEFD94087C119E98C03537FB41CDECDC8A2AB94611980DD850B0B5FA0D46F8C17B1A60FB899A209BB576413AD3F9356FE9445E6BCB16A8DC9A51490EDB16F29F0824A9F302A8C796CB90FDE0A7831774409308040869D916F4D44A781F02D40F991EF0CFB8B6B582CB321A3C9100C2F7F1EB1ABA32D02FA01B9B9B4146E1BF3118BABAA054686B6D166D4172E4D9D9B4658B5F332213CC36D00DC266ECEB33D0D1F7F633300DBD9DDAB6E6A3D6CA3E1B67682940943D0020DD488845FB225E488B8D3FBBEC930F0A76D62F3E7EFC6CF3D1EEB4F855AB58608F8642CF7EF543547EE4AAEB3F64BEFBF9E7174D9C84F857B2D6FEE7E93F678684141486392504A1316BD90E41686FFE17825233BBFB7BDB56A17476B705A8F8D0D7A02BFF38F3F59BBFFFF6CCD71FFFFECCEFFFF2FD37C7CF7CF0F15FBF3DF3DCE747EC4F9CF8FC7BE0E508C0E30C750DFCB16F3902BFF09623C0CBF7F6F6B891D5E16AA43F6F041303B818BD20C3B0C1BB42DD0C7868E1D90E5C4CDA04B051917B1589E0E52374C877606CBC8C025029487BA01CC84BE85B75EDF03C6C45BD918E271AC8546C100ED46807EB1FD552B0383E1DEA205D2B5BE70782A265835140CD2B7A2D181F76472BFA46CEA041CE9083C033AF3CB545845!
29908B500A066C6469168E5CACB4DB074B61FEA2BD322705077875EDFE50D3665C84087EC34C4F4D41A3A75B035DB2F9FB88CA2BD0967044767CB1611D2A426F877C088C3ABDADB2FC382D9D6F40806CB48D7821184226C056A1202678DBA5BDBA000847FC54F878670B4EAFCBA6015C1976D76EEA2777509D07F00DC74192E19B2F9E8016ADC36F0C131F52D5A845A4AEC16E1E3D5F2172DF2EEF30643B5347F295FDBEB7961CBD1202442D9D69B6C2B44C390CDC4C1099CB369C11C56F7D35F24EFFCE9E346DFE6736D3D3DA8C1A9C7D4F8E9E1AB593F74E5479EBBBEAC3A59F0D9BBCB5CBABB596797659D5D901C92995958E8148BF7AD218A50EC2DACEEE5F4F60F2E186B3C4683BFFF02CEE6C85FCE7C7DE62F27FEF2970FDE3C73E62FC73F3EF3C173678E43EAB2EF40C81C69713E2FE8801A1D110433F09406654D0B3B6760C0E8E575DE4B00A508484D9B80DD26A00F0DA14C6510E8CF836CC0DAD175B4428E632325EAC0AB6878232AC6010FFD294412DBB9596FECEFF732D287041DCDCE7A58A51DB0825B8D743F3A20A2F7D381B56845BF427483CC2EA40FE46E91A674B2757047DBDAA16D866DB9F274631300D7D8B272A57D8BE8D4691192C7F6F653EDF0B71DF7488827677893CE4F4FEFA237FBB1113C6CA46190D9D84059131287D3A82940DFAC830ABD0D322!
ABD8D8E70D5B7465EF118D28376ADBCFC22E0D68A776B004E22486DA03E507EB1E9464
FB6BE0B7E0AF096BEFC45F991FC21E6101D996350AE2D8D971178ED8D7EF0615A50CDF6E666FBD35B742D8DA73F3C71AAC9BEB1117E964DCD2D4DCD901B4F9F3EB152B4F2C30F4F9F3871BA51BB791118C135F9DE4BED367FB979E9A245D99EAB5A575C5A02CEFE522B24CA179B56F47B4651126E201942ADD450DB03400303C343A360898239F17F3A1B7FD6C5FE83AF92772E3EEE9BBE343232FFFC3981E0BCD7B07D72F2D565D7A32207B4D7975DFD38EAB3C22F3E039ACF5ECD0ABB7A353324332BCC25013524395C19C6A528766DC1D397D0D8DA050D27AB8A0F2D5E7CE6C8A9239FFFE5A3AF3F3E73FC9BE31F2FFEF8CCC7C7CF1C07F303B58D33FD3C90E325706E71EE109C17003F4FA37CF6394A68E083442DCEA02D6836DC7716D1055AF8D745A266E74E7020CE5AF8FD821BD27780F3416E4700C5D9E6C82B91FCF35D74E3C0C880371370832C0729CBB9198A25580494C3CD4D50CCB4E8B46D8236D4E708C8B02FC35682F401B616C861FBE1CDBC9E569FE009CBF53440A9B705A9006C8FCB8D8D4D4DA22D4DF89E9AEC964E11A455A8CA809A16246AA82512EF5F85409D63F01DE97EA07A900F74008BA87D4B8B4EC407DD804700E7CA139745A2CBA099505CD18D7A8127D02F30EA0D7C2F3DF251788718581E3C33B5A286A12EF066E08CFC9A81544FD44AA483F4!
A66B4214FFDFFFCF872B3F3C0D5F72CBE9CB8DA2C6CB8D4DF02D5BB5B06C98874CC0871F9E380DB7C78F9F3E711A58FAE4C4E90F8FFFF9F89FFFFC67F80B143536F9F5F6AD59E1D906090C156E86DE15FD7D76AB572FEDEA5BE1071977453FD46ACE7E4F73509BA20364B2A5783ECB0663EDE57531212136E8C6A5DE8FCE5E485BF6E9CBC7937F2AF8D4198D02CF3FEFDCD121100CD81FEF5EF64377547AE43997B02F8ED33F5BFBC5D9CBF6BE67BFC8FAE1BBEA8290F7B2CEB282BF1C46FD2183D9A0430B9D42DEEAEDFDFF997ABF9836F2755BB0149D420A22B9406221DC9690362848178CD35C299710DE123FA03E52F2D03A326A2984ABCC743A524B39A1B5A596BAB51FE6E93EB4CE6476B21F2651F79D872A1B952B54CA50955439D8D801C738D818B0212647BDE94EB2738EB6CE4C4EA299BE7D5F66ADAF9CDEB700FFB7B1EBB76A7DEBFBEB6A77AD57D9C166DC35547DE7DFF51DF5AEA1EB94CC3B064141908077089588E765F3592FEB69CBFACE4E2088A0A3F1CF3D351FA2BB1C1A01887A62301B0E0F9F111C4D1E1681591EA6387940C2CFCA0F86EB504730F258903A144EA967C4C3714EE34559BB5ACC15D963990B411E938B84EB811930F6918153A7EA2225582101F78CC9A6FEFAB13D28861E7F1DB6146A05B29A6CB402270D1ABC04ED75F3F09800B844F78E!
A928BE27AA79C82BA26870751D226784EAC98AA6A33072F0DB549A239EC3E8F5AC6EAE
7A5077F9A29F574D683D5D8B16A6359D949687D406EFAC8C835F7A448AD364C2DCE1E9EBAC3902700B7AF471E667BDA04F477BB6BF374DF3005081A59BD39796746D29B534BDA4A5B5A72902C6744C6D29A9E849DDB455F091A92DF04E5CC5663B31D6C93BE36B87476FBE2CD5564773E333FEE8FEEEECEC4069A5E1D7D6E71A3C846722974E9FF9BBE3BFFC2234449B36303939D46C4EB02EF652B76E95CFDFF9FBBFE8A9F9C462E802B69B5F601D8BE12135A3BFF8BC1CBF70217772F8FCE266F6D5305459A5EFF3E1CF87BFFAEAEAB9731BDD97762727B777779F1F3F7EE6F4C4279FBF726BB5B1F8A8024F1DBAC6F0787ED723BFE0577FA2EB84091947CD866295A26F783157556DD3A617161383060C858A21CF520DCB0BA93857AD10180466C0F73D41909FAB8389B6218A06577BBC39881BAAA2D5500F8F7298915597D64F74F32A553395526EB547BC3AC7854DB1A82225F8069F7AB044455A1A5CDBDB3AF512BE316BFD4A83A5FE67103244C3F6D68F7BF5FADEB1DD1FEB393FEF421DF9920AEB7976786A13C801649C11C61BFCCE3A447D8E252039582D18A5F5D038CC100C518F3EE28E44810FFD31FC3A9CE23216DFC00DD3FA813E3D8DEBB0888FD33CA75E5F87323A38A02C3A88FE359DFEEBF74B51B3E0303346D7CF1A2FC008E6573B7B54B81A3D9D79DDEA01D!
7994E0F343C290A06B7E0B9237A3A155521FD7DD7B4011CE0068CA42F690ABC03AF6CE966C48C38965A0EB9F5151C1C39376FCE39057A1173EE9C8907CDB8E436F3CB75872C1C39FD0F00D135297495EDF9E4E6D0667CE2F4998EDE5E375BDDB873E7EF4FE811438D0D5DD8A6390B15614CB6D57B5F77BD25882A7DC3576F75665FBDB00B5EEEEDF9E1736FCE7D75EEF37756E4224034C9BCDAF10EBCD8A5EFC61AF1D1FD7D0556EA2EC8E8D1BFEFEC2CE3FC89261B34503160222F62D996EA642BC0851B2FC55431648617AA8400361D27A05FBDA0FAA122F64A11AA101F31E4E3B7E843E16C421DFA79E0A63007AAF1C13C6000E8D79E12CC0AF0D2F3EC196BCD9FF5FFEE474808D81408A435DA9B676C85D9FBF1C7C3975BFD83A57D22674D3A19EAF5B5DC8ABFE232F6C690DD6ACEC73F1E2C3D9BFAF1DA8FF5D2B3FA5E7FA95EC7CDA5522E07528339A1AAEEA19796EF5909979E6DE6FC1E3F0C4815710EB70D32F8D92C93EDF9F5D5633E2577A180C78EC0897318661A51A35153C70DF835A22312A0A4C2034F450B07D02A8FBF5FFA6B748E701F1C3C76B80637CAED01BF5974EB8A107AAB9BEC6C36B89F40D3738E63CDB90EA0B0565F75A2408B994E47CDF4E3B49ED695A862CA8F11711C1517745CB6CAAEEB64FD0ABBDF73AE872B60799CE128F557FCDC5A0E34D85!
8A98DAFEC9D9A3A3CDCCB95BB01A2E3B0634CC95FB8C02CFC76385CE9FDE4F4F1E393A
DEE58CBBE71EBEF4F2CDEF5BCE205015127E8201C1E2ADCFB7A3E65C707B673EF861310D6AF5E3D4C65B4F32F3EFFEEA7DB57FF7B5FD5ECAB06189A7C5E27D79D79DB50FC717F5FD979B223660CFED5CE0E39495547221E857381462B5FC9C5E12654FD58AE02A2849556D548D6B3F1632886B24CEB07F7ACB809670BEF63F359BCB3DEE94324F638236E6ED57574134A157AA4138B57C27AAA54B4A19530ED1BF004370BC605CA21F43F70E1D885DF1D81DBF1BBD99BBFC3CFCD23376F0ECC1E9E1A38757360EB90B9A3818159DCB03FC88287B53DD63D7436F23E8C20B88DBB747CC4A45B6C810AB18B01D87A9D51674A76FCAE63F52D086EC86B93048453CBA459A10A817756482F3D3E2808D5D04E8D700F44E17262F1A3067E8594F402F9098494360A92CD651887B9D2B5D24A6E25D7E9E409BB82898799232C4C6229C14841C77F1D09AD3EFBB1B4EAF6C8F20B6538FEA0EF361C0839771DF0320FE64CC3326CDA2E0BD483A3D77166AC4823EBB83052F885E283E48E5A1E3F050E60B380475AA6E5C217F51DB8FF805D32DD0705FD77B464179E0F6D134293439B9E7AF17F3F73EDEF762700A2D8C357BF7EFD1AE6E72E5074E1BF0C7D0B9302D9AB26BA4EDC4B862F6C57FAFEED5526EEBC7AD59548CCBF1E1E3ED705DFEC4ADF9BB7BDCF27F79E4F0E4D36591F79E6CC!
95BADF7FEAE6470A8848353CC60B550208E60BDAC6135B06084130FBA1881A89A89E0F7164AB5903D801787037B0079E725427E47B6E8E0073DD7009F4830BC5DC662E0CF0F9A1FC78110E7727051114B3BFDAB9C9A07267E72634F6B1EDED63CF3A3BBFE8FFDD91A08CECA323370F7FBCF0E3D0DE31289DFEFEBD1F4FFD6E7BEFC7BD29482888DE066CC45C1408C9E506A95B5DECF83989A038D6089C18982EC7982B88A6762CA7A7B496B3D251831EBC05005874BF8DA849EE040E206EAC9EB04FDBF438BDF4F3CF4FBFFFFEFB9F538FA797A653DFF3E7F5EBEBD7AF7F3FFDF3F7A99F33389BFEFEE769DC078030514B4E63CF606E154E196B7A56D69EADADF4ACCF8C17F28324DBD575C688E0BF433E450FD4B9429EF5017986201D868DAC7542C6EFFFF1B03F373EDEF057A0B20F0ECC023C310340013A0CA0052082F69E01C8D2D6816946BF0457691AA80B6E9A41A4993AC4F9CC9C35336EC2A2352C6B9D96ADFC0FA739C4EAF9B5810BCF373787802238CE9EDD3BD171FCF9FBDE72A815DFF8AEAB2BE9D1172A6E5F18A22A81B01E32529185F9B7A50B60A273E7B4785FD7EDABF389F9F9DBDF7D75F5F6575F9D3BFFC7F2EEF3BDC9C97ABDF59EC146D8B38FE11D7EF47B45DC74069D6D9E809568A4F84E75B960E8866DAB216822130708481614651BCBCB7AF2BE1E89!
7859D58B8C381E0E9888E786423062789AA5FAB90ACC58D175FD70BD1367C5551FBAB6
C70DF5AC86E9A60145A567DB378F7E74F3E6471FFDFEF7BFFF5F3EFAE8E8CD632C9F09121052FCE38DA8F9D567E0EB714A237F3C84231DF4B2126230C6A5C7B53A18CE154CEC69D71D77701B2CE98AEBB83D3024561EFC82F500E144F961F4EF1F17547848FAB4B634AD69DFA7E0F2645EFFF3D34C06F0997E3CFD33E50FB68374F4F1F7D3D8403607C00B10108D8EACFE78F3C7B57067E7CAEAB341C83BF85EAB2B2EB874D55F1DF4D71BE32B9D6B92CDE8DF92918603FDB94EB86DD064F009D68ED557D755868CE03A160A107958FB3967DD677068AF3F37385887951EEDA45D5A83DF35081BEC52593266EAFAEBE3B5DC60CD6FACACE4464B83B515DE97CFCE116936FFE089AE37E0CAD45672FB60B5EA58AC16AF41419F91C43DE143BF6CA8D9E9D9EF273A3A3A7A63113F5EBFF8F9B4D287D5056B64F377B1A6117846613BB9B130FCAEF9BBC3DCBBCFDF9C2F96DF5EE9EB2BF7BDBB7CF9CA70ACDAFD2E59AD3FDFAE37374BCD3AC455C72F674E9F19A8EE0D34220A8C98AD7AD9C85D9B927A87625A0FC063E016C386F12527116ABC647B804E0494E485E29B9562A5E8640195527DD387F8CE460C13571DE0C975231630066041488620958BAB15B051A973054EFEDEB1BD630387C7F686869E95C4717AB6D7DFD9BF0D0376E1D8F6B1ED1FAFFDEEC2E1EF2E6CD73B7B1C9!
81DB0FA881BA67D724C13D851A11574ADC0488A49D94108E12ECB3920C33C7D9D79FA34B394E6E9EBEBAF5FFF9C01A1FC0C56C16FE6FB9F334BA9D4745A876CC61FCEA314D105F3A00055ED03DA9DD05DCFF64EDD9CADAF3D3BB6B596634605BACB5F5971E6D6F323F9D571584F966EACAE743238C41C89144AAFC33F5B3F885AD04816798A0EEA1C14937EE0CCD1CD3B98A3D4B2E644871FAC8FAF1FACFBEB0773EEE0289C86D19575789DC052CF3AA3A42B80D2543F1CF8D2E8206135BAB6DF3FBAB6B6BFC6F47DAE54DF2F954A555AEC8633E3377002FA69FF598D99C8CCE54BEF277E392E79FB6D9833D0D0E66648CDBE073DD55B17ED62BC55B5135DEAF4D58D6E3F8717F2CB91F206AC68C42EBF3DFFB65CDC8C7D79FEEAED6A47074B64274EC30276B7E2EF63D6D0361014DF6C4DEE32F0BDDBC198755F7F7F4A5177847F969797B5E51D43B1C1333BD43DB46C201C3AF2469B9454F1D6C855F87FA158B8E265C3F162AE12F2E3A55CF3595C2244C55CCC713C27EBA8AA4BCB0633881F58B2584F11EE7B110B054BB6BA2A21C7D51EA7C797743AC3043CF0C9E4C608FE1DDC9391E2AA6758516D09E43D42F10205E33916A48C0A26F2E03A83F255CA1AD27A3E0F073DBD948677641E50BEC268C0C333A09CD743F9BC78EE10C550FE3E88B1E8E6F37E31D7595A659A2C2!
F814CE87A78EC3DF0D45721723A71ECAF768EE683A0F47850CBBA766C10D8814DCAAF7
49EFAB1FF59E918DBBC8E0DAEAFBB2B2BAB6B781AD4B9C435E9C0C14F339923615512DD7F5C181F61AA63705C5262E3E339389DE34C85487E8DC1AFFEADAD4378EC147FB3875BFDFDFB6BFBFBFD6B535BFD535B5B5BF89B1DB879F4E651DC7FF8F2E5CBC3DDA9D268AEEA023D0D1C6B33801390D4071EFAE597EDC9E7424584D1E466C80B572E0259FBADEEBE62B8F5BCF4F0950210F596AA6E8CD5D217CB06347497AE27FED8D78A37DEBD38FB69AC0338E9986C4D4C4CBC8BB572BD9612AE148B9570B1B9DBEAD83D73FCCCEE2FA74F7FD267D53405DAD8D09777740320521802DA9113CAEC65B86B460A08DAD1B49498B71DC38B188A925CDE5196776C105224E2661DE8405D336DF8A4B6691B9E9BC56D0E59087A0926A6886583B2CAC3AAE572E1A2F84A829B7CBEC86A1B778405AA06A90598B061EF6D5D4B2B38F34030AE6719D0A50644801DD5658375D2A6531ACED5900781C05A682A4B96FE8DE75D3FC7AC08131F8C19E53A8BF91168F622B43B6014354C3C230A298D4B866A15D4917597916D20D8E27ACF31EC3C37674955CFFE5AE75AFFD6213BC298AD5A5FCF37C021EB8DF575A6D75D786183BC75DD5FDB1AB8398B55AE3FEB078D7144D0D12337999538323B4057015799A7F8F8E38F7811371F999D650A77655D4AACD724E2756AF6C8D1DFB337E5E8CDD953!
FD529CF472EBD4ECECCD596C478EDC64D27F766A7F6CA63136C65F77AC36E68FF9B5DC682E571B2FCFCC0044D8CA94441DF5C9E793BF3CBF3634392964147A14E3972DB6E2BD656FB3526A8632E7F56462A3558DCC941B337D7FEE2EEB7FBF387D4BD7AF9EBF7874D67AF3369DE8BBD46A4DEC77BC6F4D745CAE96E2BDE7BB6C785CC55088DF4ACCBCC7F1DDDD33FFF087B7F105455F86D9525435EE014ECBBAF2E4FE7DEDFEFDFB8BC410374D7B222B96D2442A69CB0BCBC672524FDACAFDFBCBF0CF14AC09C4926EDA4AC48223AAC65CBA146EC5079442F1ED4A2EE4D0DB17328228910D6E07560FAB663EE6CB9A7806A34C26D8CE8103E23A5696AE8B85D7352C271F73C08205D013650EDEC4633D6AAAC552DE349C116FDD72188E02BB43EE3AD106480A62148080F488A697BE7F4C8B85A7C14B87CA36A1A2C58A599ECBF8A6031DB6EE3243D7B30A6DFCACCE1A4616A8D6FB59EDFC6C70B41334330E01B3B6D5BF86655D61D297651BB5C1B5A9C3FEFE43ACFC9153C718B55AE90486668F3DDBDB825F7908AF0076F9D43630B00724EE81608E0CBC64E20B502092668F02521F09C43EFAF8F7920BC3AD2F819781D9535BA75853C4DAFDFDFEADA9FEFEA95AED1F074761D746A75ECE5E9B7DF9727F7474947FB55A2DD7DA83E17A591FF51B4E63AC3AD6E0B797FF22F543!
939BD044DB17C044D7BDDE4B1DC73B5AD53E70C9A6A765166CFBF69BEE2AF3AEDDDD17
7BCB8BB76E656E6452AF36D29EF5F4F6D58C55C5AD13AD8ED6A58989CBBDF1DE8B5DF71E163CA0A808E358DF05DBED76E0F4F4953F67941D7DF93E8063ECE092BEFC64598369038E889EFBF84DED68A9142E68A9275A6A31757F41D71505A8C3492462DB11C7B66D708415C166E13AA0A06643D92CA8C7C986DC0810CA6093E7E1394223264FB08C665A839BAC33BB01BD5D2C1699CF652C0522CC733D4F331CFA8C066F661E29E2392A857C2817CE75B2E878C4B0DC62D1CDF92350C0238576FA1E94769077C12A0028B0045E9278A33B9E67C46865B37E8C5A87697329CD5881FF3432D233D8D9C3560A1065896D6061E632069F7D684EDDEA244406074BFD6B3EEB367A6AE24D5BFE541D8237573FAC539FAC6CEE7732F33BEE8E97288F3B4BA5B5C1D2DEDADE5669B0BE161F2CD561794647E5A5D6FA4F4184F76FCD1E21C9002E2F797D0B9703D6C21971F612060CDBFEFEFEDAE8FE543F9E3CBA363A3A3636569B7AB9BB35057BB65F1BF5C76AFE58A351C3ADFB53532FB7A6F67B4112CCE01F8763DFDC6620E879E7A3C548F5127475BD3B120A853647529987BAFEEAEA434389DA8CE558CAE2F52EA8C645DD9D36CD57F36F9C486FA9B70A5D74A9E31701D1BBDB9F76A9AC078D6F0E6DD6CF4C7C726677777772E2CCC9BE8C42ECC09EE9A09FD4FD9400E63EA74768C4D!
1B2BE93D429A655430B4C8941FC0041F8D39349204A2596A0A51C5B019CF067F0AA6E46882D5C0AAEEA643240513168E2FC6278ADE886729BF5BD0BA5709149B9A2308DAE89ADA23B05E4689A910F375D4832C0C7C2CB105F7B7B9D50D8230E16CB878BE45879382CF906832F0CB758E41B536412240936DA353E7EDC85D3EFE7C6053DF9F5F5E8DCF8CAC8DC38344A0F4B35982EE1EB8E7030423F60B6DAC9EE9CD59E3C1E39C7D2AFB515779C9A771CFED51C5EDE71FE8C7F67434EF7E045460E600BD7F34C818CFBE310FBEB6E238F733F4FD7A9C71F6758621092FD14ED1659666B56CE66C56C6DE136D62D499DDA29B6501F0DE074AA7FEA257EF6A70898FDF6D626219ED4C4B2D5B88D8DF23E08F28E4F7EF9BB33679ED3336B6E53135D980C9F58542EBFA735EBB6BD5078D34BDD48A99E92F8FAC6A231F2ADF7EDB79E27BF77BF55535AAE77E9D3AE901E2BB5DEF75E8CE3AFB73B56F9E1DCEDB3991DEF5B3CB939B4090E3A73A6E338A7835EAE29304AA01D2D757F91F80168404CB84E1A8275032D11000C29CA8926772DE04733925A9200813002AE70498F349F873D0A72886F5D913081021D655A86625AE5AC5BC995860E074A9DE1CDCDCE527DE859389C2BF684701800C43B821F6E29F98DE2069D45AD211A4C5D4B2DE05156C48D155D1EF4399F5ECC38567DC!
65DC571CF0E1A5CC572F9EBEB4E41222851C9659AE9749AA14450137D3733CA020E069
707078F71B98E418F74AEADADAEBB8492CB17A22B962FE4E7E0ECC1BD9F831BB532D83338CE92337865ACF8281C582333D125CA78270A672BFA7DF4F1E383B942F4600E785ADB3A8492D93AF523CB169F1115D252D639B846776F4D665071E40241030BB9B6F68F8363D284FF8F50D16B2BFF8807CCCA269C44CC1022C0CBE8CBD9975340CA146F017C1A6335E2A61F2C35B55FE3E5A9A92DD053C7C427A78FEF3EBFB03D3934F45C5CB3CD21E3C6F0C5F71DBB93A598723754EC0C698BFAB7A1BB891B2798BAEA0915BF0D85E4F7EEE289855AF5BB4F5F7FAB579BF57A33D6B7F1EE4A5F24D65BFEEA4D62510700C3CD49F8671227DA9DECA8372736B0FCD4CDA9FBCB46B0C1E5D76DA63BB2304086B2AC01555AEA4106187B90A2814B4237618593008F0D1FCE20CD002D768858D01674410EC84BA59F67AB5E0C56225EAA3F1F389C2CE5E0BE318E09B84C6752D3296EBA7887DAF423ED89DE965D4F84F558C69459CCC0F02900AD691A11BF54DAAC6FD573836BF541F18419B7BE3970886B79316573EBFE0A70D44385BD8A43BF33B7C27BF2FE60A9E4E73A6BEE7A4F8DBE117BDD59A18AD51CEC3F766AEB18644E092AD79D999B231A1D8820B00C80657D3937170536E6D6813EFA5B4B058007D05CCA5C5F1A594F3FFDFEF1E3EFBF7F3C7E0ACCF1BB6383837F22649E0149!
EB14DC2E7C78E08A9E570F19104EFC9F06E97F1143EDBFB551CAEB95C1B1F106434D6BB88D927E1640C27B840E2209BD1C1818207EA65A44D3689B8F06819B29A0A936465B363A48688D42685FA2DD829EA6206A1244386C37F5B7972EB5DE977ACB9A0D4FCDFBD7D4E2BFFE376D3E538650FE4F45FC1629298AE1BB77320BB5DAF0D5DBFA467C77B25EAA64CBEF621BE7FB7E18BE3A7C35A38187F0B2A5E62447607574343B5A1D1D7D096547318471C834D0458698B607B06C0F16B17575013EF7090C92534AE3232580B4B38CAB8B8B0F52193180DA7D9D5E1E30A6F35E5DEA8C98B90DC7C3B95C053EBE2977061157211B3E5C30F3480044303FD11E69402BEE4E2D12592C6432F5E45212100214EB4340D1C0CBFD129C11E0643437E6FA35A7414EF259AE351E1B5FC95106AD003125E6CDA083FCD55C8993334A6BF5BD7ABDDEBF778C333E9E810E7EDC9206AF1FE126AD1D9B2D8DD6043CFEBA65A6CD999539DAC639337D003AFAEBF7E9BF7E1F4D7FFF57D018984D7FFCF3CF3FCF4D7DFC1F7EFFF1EF06D7C7FFC79F8E7CFCFB8F8FC0027DF4F1D19B34465B832B4CC73E9E63DD59FF37209E6F668F9D128F0D7A9AD815778CB8AAAD897D65FEF6E000AEFED878BF0C0181413B724AFC3642666A96FEFEFE284968B4F60148A3104363BC97AA496E14C44D9D7E7FA983!
4E9990108BBC68D3FCEE4B70CEFC725937EEEADE88A6759DB8753DD165440D2F743772
F7DBA08C35A4EA96E2CC9CFBEA4A77772F40D20AC7BBBFDCD8B83A5CBEFDAAEFF6093DDC1CDA6EB69ACDFA6EC72588EE490E529F78071ED9018E8C65814DD789AE5B89AE13895B5D8B89BF641E103FCB5C7A70931722351981CD7942203C21169E00613A6D1C01418BC8EB424606234E404A528C544A4B6A0BA9D4023CBD1481A3A51E4DA7A6356010504D3D3154E6EE9E3C4AA5F03B3D2DCF98D6442159651F4476B83759AF9772955CC3CD8D0A05ED9756DC863BBE220882596BAC8B1C01C2D8E795CBB18AC70F97FCD5C11CB71EBF3307DDCB72E575520256BB7F903DED7FDAC75AED6F6D1DDB1FCC8D96D6C62875FECC1CC29CB53E36DA5F5BE56AAF71A802233D0756F4F1D2E3F52DC6D9D9920BF07C338B0B00C837DF1CC5757A58F4E1218D67E9649DC2C9373C39F5CDA96F82ABA27AA089A09CD756C4B9DFA2BFB746779E12692BD047B24159D7F74785690223360A8F9EF64B0477FF6E2097208478BDB43F5507C8DEB74844000E1044E78CE1C670B1FB1274721CAEBCC1D21F4DCB5C4F6432F79470B015C3AC2862BD6151BD7567FE6A5F335E89B79A7BBDE5779F7F75F5CDBB17F3E787AF9EC80E0D4D36E37180A8034CF4BEA363BFD97AFFC30B654728E741E244177F325D29DA2D486B914042323A5364AA6085D21B56863F8F9EE8FA93C0E29C6005F689CCE2E27!
55E7B0058F035A9CE715D5E7531B5C067E39569C4A6A7811DFE62A39D4C05E4231594C6F4D34C86416546A6BD9EE26A6E1FA45ADF7B1967521E86D11FAF81FAE1948C37009B5A0E42773C571B6F908E6AB5C11CC3D73E736BFE6AA9BE06BD54DACCD153CAE54AB081EC915E1F2F612967B7E0A9EFB787BA606B8CADAC8C8DAF5B737333E3BC340E5268AC37A0B1C6E75845BD0E04CD51107D7930789335A90374EDFBFBBF39C2E6A5A30178009B23474535AFFD69ABFF1BE8A123841051F50D2EC3893F4288EC5317F50F4A9E04607AD90F3F9E81A30FC0A18A2272E9DA0F1C055E3F3E3A40908CEEEF6EC19707AC4AA32FF7EAA3B9DA684B48B956ABD672B5AA5FE3B5C6A54A6F6F139ED9E6E485368880A7F00FBDADC9163C7C3D7F5785485153096D2799508736391F853F00519C78D2BFBE77BB2BBBB9198FB75AB1E1CF4F5E39775E7971F6D3F987F35D21725BA9D46C36773BE0DDEF764C407B6F3C54EE2F827C16353A66C4CE7D60E53E16931EBE386ABA78F6423230738B421C8BD74FDCC2CF89EB8BC00FFC42FC2CF27791A70010A0D4D5D505682E3E209B3D5A5CBCBFB3FC68F1C1FD27DAFD4562E46980A1A799A74091C0683A83DB253E3EE2ACC0FE6CC173DBDBAB3F5B835FEC8F414CF9A3A51C5C6B7F14C433068305CF96C4416F7A14E85819C4C2AFE4722BA57!
E58ADEDFEF0D65E8965CA4CE4AFB132A404E7ABB3EE4BA478B03EC8FAFC1EB6516011B
7D8C7D3BFB6B2DEA09B03FB5203A86AA3CC64AD49A707EF8B8AB959C7FD8747065EF6EF4B9F227002AB7344F0F30D63853056B37F5A835CFED31445D7D6A923125D84F325C387689EA8C8A0C9E0BEC31DDF920022C0B856630409A87949A534756A0BFF836122089FDED19618B1A9BDA997877BE01A20061E27E38C4C7BF86EC3E78EC1356640662C0B62E574B3092B7661FB372AFA62B3D27DB115BF147BAB85BE35AEFFFBCEB7A9C4B2913C6F3721993E6CA0183CEFE1D7F3E78673B8BA19DB78F1C72B27C144891B9F9E9D4F9CCD44706B094C54EF983C0D61DDD1BAD4BA78E9ADA5603517401F841140232C8353AEBAC822DCD395213A52E09404E8E63AA592AC3B98070C743D7102E7C0D122C19459D45320B34C17A50DB171FFFEA347F7979FC0F97BF0E8FE936598C0B4C662BE5414AE8DB6A4E9CCADE71DB510EADCDB3EBCB0B7DDBFF792551FF597FDA3B941EA6776E7B9331147EA2018DAE79E2ABB4EA3E136627E6DA5E10FF22B023819A3965B2BED879FEDED5110797370ADDD11095A97D84048EF8D511C7F0D8EF6A9B5D2DADEECA9B5F1F1B57E606890E9857E5213BB4E39E785290C2C2A288199B453A7EA709CC6D9CED1803D1CEF072EFE8455FE134D0F5B63C7FBB7BEE9EFFF3FD9400DA32483ABDA15BC83A27E70FA276934C3E5D1FDFEFD41416AB00DCABF!
0EE2D65BFB023E58B6FEB5A9FD41B85E80CC98E4C8188EB64CE6C7B06D8807FAE748FBAAF567A908C189F265F73F9CFEA563F38BED0B1724F94A140D6D6F862B177BE3B16A7558FBA258CCFFB77F56B584AD0EBF78DB04BEC47F1B9ADC7BFEFCF9EEB5FD2E80E85D7D6833660DBF3877E5CAC9FF387FF6D3B39F76BD86F5DBA9142B9DF152BC39C9B1A0A73F99A876F75EEE5A523422E281765F6C58EAC103FCE22FB59CA240EAFA608C009987E010983B70CDF513FFD396B925085ABCFE9A14F3681A7A48557546B8354A204A714247DB613C9C6937C8D5FC381DE99E95D2DEECCD8153877BDB37610E6EEE95F6F6364B72F0ADD4D825BCE237D61DA7E1BA31D79DA1F7556EB8808DA40C4943FBADFDFE3D5C6E588E3BE7C23FE75895BC3357D00F1CD79A9370A335A7CE39BCE8E65D778E9580CEF8E8B197DB7BA5354AABFD2DF1D1FA07C7576A5831A6A9FA99AFEADFC2AA8B82E95FABC365EF7F76EAF0479047FFDAC0A997AC6D0E3CBC7E3E0E826950A69C014B9C33245B7F90C990713170DC6181C704546B2B63126E5A191D9449424C9B703C1167340CE6A4D16D74104EC016EDE8FACC7A637C06479BB9F12510C2DC18B45AA3E15773EC64ACF9B1060EAFB988659BA6629A5FA69369F3CF7D974E77C437872E9086445D0B9086C2B14BCD8E78AE57C984BF880FFDDFBF!
1A7A97575494B74D7871A02A36374A4BD94033F14F5F9DBC5CEF2D0FBF48BEF8FCCAC9
93E75EBD3E7BF6ECC2FCAF8E960A89CDAB544AF58E8EDD339F7CF2D9E572DFBCA62CFFB4F84070446E218188CAE98241028032DC483B0F32F0F2BB322712276E25009C13346634448B8BD4305DD709A0C5B6B64941162D68BA1D89648BF1CDCD66335C8497860B439343CD7A3F73D020995C69BFBED75F2FB1ABAABE16A72FB542EBB44F0355C27A820D1A6EAD942BC57157C8B19C586EB389A7E2A16EA34C48391B4A3ACDBCECC19C63BA16CBDEDDBC9FC7794FCE1DF15CA6FFF30712BC36CD031CA9CCB7D003AB4974806BB5B725501938C559092FA936A0B9FB07E1B21D3D7A73EB4FE24105AD85CF6A92391D9406211836E10EA046C470FF14488BCE7A0D1020B9D406818C1A4D2CB9128B7F60E24DCECCCD58EBCE3ADF027680B8042B833E84FE4A2E685E0194383F06528C01AB5A3B1436539D9A6A4100F9557C724BB51C8781515F4A372BAE1F1B8FF13B37FC1833468EB571A9156FABE9212904914B20965E7EF14BAFF9F5AF8F7642FABC914C7821B56F83E1C8E7DB93E0A1434E78E8D8CDCD7FFDD5C9EEF2DBE1E13F0E7FFEEE3F7EFEC7AFE65F9D9F3FFBC64CE84E8645F5955CB8D8AAC3C93FFDC9277FF8ECE4ABA71A98A88BFC42CA01F7C03BEB3A0121035D031C41D2A4161F88E9229AC84929068D08994C80A10C2E40D968E28369BA6930B21CF1C3B97069338!
EBF5211FE7D28E657FC4AAE148EB30A7F9CFBCEC7EE2EAD4DD5F1B7B7B5B7961B77395A8A6532738E83E3CF775C4A65ECE38AEF86AAC558BD5471DD2C58A9EC580C8DEB0C429A4096C3ECBEBEC41689B47E60C1438F1A3356DA3C603B45C1B45868E4FAAB9040E2F3BB0001603637238DC97307D4486BFDC7A6A45A12EF6D643DE8393D26860A44317210FD320A45148D5AAC011A1C5D9BA20A9A7DC912EF35800AD8C0AB313440937240FAB30A16A73670ADE76CE0379D36CDA875904E1F303B333232C7DE0499CB668D14A438A420920B143D2AF1AF159A5D3A9BEE0C98185AC782DD32FFCC627D2BE264011756C73A969236ED03DBC2AD41B05E57F4E1DEC9E71F301458B3494EF5D8F47E6875D4DF57B57BFFF47FFD9AD2324AD7BC7ED71BFEB2122EB6B758ACBBBBFB72F79B7BF3AFBE7A313C7C6EF8CA952B9F9FFBEADCB9F94FAFBEB9FD02AE78F296E78518B4093727CF74C8F7827CF287E1D73F290F32F4ADA8981F6849D2905052A6EB2F1971D6F8D345350480256E2512013981AC08AD070F3399874F1734DBF3F9F5457E8C3D3E7148E2C3BDB89FAB846888FC982B0985ACE7441C29FDE13154C736C82331EF420F199664BDB0E8C65C9E8F586723340E59581F15CF0AE1F187F57008AFE0013F606E131CA42B56AC7EE89B82DEB45EC08AE095F0120E16CC591DF!
7F02A23A61F64F3FD1E1F8E196B1EE7E6AC198EE518079E1C77A57F656E84953CB8E68
EC3B12B1C10317373D1034E76686F732CC597628DDAE0B159BAEF532BE37358F5B92FBF8C324737EEF7976A2EE1697229012616DA33A69406B6A1FDCCB453AA3BBA9EE63B0C6A08EC8265447596815016EDB1D2834545A3B9155871BC286DB1355780081453061DC4D8034B66BD2CF765B019D81778591CC46946E1D25AEA87E717AE4945ECD005C1D2A42440C2A6DB5D2EBF7DFDE99DD4F594954ABC49DCC8E8A9C443F681C5F1530C4D3F1CDEF87CF88F897B8957DF1143F4CBBEFAEABF7F75FBF6D9AB6FBEFA2E9959D26E79C56278B3182E0DED4EF09BAA3F0188FEB7372925057FE901344FAA8BF649807302082119D1DD5A0CE887DE7710A05E66E6958569912C8389004B3C5EDF7D7E58CA550817E088E627E604E8898522D2AFE0A82E3F379884AA65DD0362E4C061053C131CA6A1AB5EDEF5F2345DAE035BE4F738606EC3749835310D434B26D37A524B7297E96CA95194B4B690CA18A61135F3AB7E34E2395EC11871B1A0EE489E79B0190F80E44A58858023B0785F16002136C7EEC372B9E3B5FAB1C1F59191FCF80AAB554D02A2676A7676CF1FB1A2D12F018203E97B768386F8C167A76E7EFCFBDF7F3450EFB1A0BD0CD38AB4973A0FE493D9C0472A3B114D9D6BCA0FA8E1778958D2A3B8CD345842C0F7AC8E30F71C72F32B12283AF5ACFF18B47B094716CD98B8!
9CF8B74E23FDA5825DB5312775D77F16BED1D32C9AE08EC34D0222EC1385C51454463F952BCD21E286566AFB792075B687D44C267196CDD0374E6846481F7E387FA3EBC5C3B3092B149EDC84350B7F7B22031376EE7CE2EC9D85E1E1E1CF373EE7770E7F75FEF6BDB39F26DE9CFF092A3775422D86605A4044ADF713C0D0277FF864E2B3CB571538EE8B0C112ED370D133833262AC87AAF8FE82B60CC03017A6A752CBC4916DDB5CC148D6F6188E6E4EC6F80D2133B65D2E97DDEEAC5BCE498D7C3507B79AB5E8A6A5460036A04AB554CFCD3A1EF64234CAAA0E82672634C2BC3F401355795C9A1EA799B1EC8CC9DE82211935EE23D30EE2E1BA9E0492F0072C6763D93E66670B86CADE2E5DAC69D15DAD6F43AC630546E6581052B0F26C3285A79627DBCCCDC16B1B87B698835201DB8DB387767D8485882CD576CDC29C5A889AE69C946C835A0253760063062A6A8C5B055D8BB2B6921D869AC9A911D4F00700C901FE1B40435B9BD6C47B02C39A409481275952B6A0F32FAAE233332666A9EA88C91AA6B942211D85BF1A3DB0A2107233B0852019266DF78E0E0C0C1CEE9546C7628D19FA6438A6F0AF80222E03F64C506A8D6304AF19B10AB69DEC83A7CE814224A1E3ED1AD9CDB071E7D3AB5FCD5FBD9D98BFB37337A5F53DBC7727F1DDC6C304D3B13F34E34321555F5848!
24CE77DDF97A3E39FCF995CFDFDCEEBAFDEAD5EDDB895F61DFDE9C4F2D27B4EBB7AE87
BC10BB654BBDF1898B9788A2CF2E5EBEA2DC077A52CBBA81B5B28DFBF7F5A0C491990F160FB5F3AEF7E9673114BDA327159B5BD6CEC62AB158AC52DFDD6BB5E26331270BA440B0C4C838000AACB40D536D381E1B660DC3B3596596F53C2BAAF0F0D10D0764A38E1846B45D1E20AD6E3248886D26CC8848CC3A95028283C8E482840D168025C588180A894963AE5FFA2D0D3DCA5E5C9655AA8EA303998E3762B380364F731AA2F8EC61B1ADA86C700E4EA051A2D11136E2B3508D7F732157B5582C8F15C672DA3AEB5A67C035308064A7E87454C53169B2E680EF40074AF3B9CED5BC5A907A462CA71DB5DD78BD99F3988736892783D99E026C6DC1EA91B15A3820F81959EB42B5EFB0A8BF6765DD9457D0D3EC14011E4DC7E42FE8C5B294002B903F8A01551461A915B9478AF641D1728429A66DEB5A9221656068B3295389AE5D1B6A6E868B6AE2EC3C88E85350911E5D5CE8EB3A9B78F32EDED7A5512B878BE1D088FEF47CE2EAF0ED7B9F9E1DBEF2F6FCEDDB70EA1367EF7D9A2160CF2F3C4C3CBAF56BE2578DE62FBC59A9B626E2172F7EF2D9679F5DBE7C59D15362CC1E504D4B06FDBE64281E521DD15B239A169286AE4458E40159170AE7B2AA1BDFACB8D962C5CFC673A5663C570107456C7C0A2BA99B7D2A750BC915679254257C58975D2946F476490976B096D25961C!
2749CCE966D564EAAD31AF31DD3016AA0DF17A8D9811EEE233DB9904A4A7236A94BFC8099144D2990DA1556A9908BB860D023AE839DCFD41BF1C1A31F8F29584CEAA7A3582C1EF86C4B1E71E7B01040DA2A2CED5A29E444D967C1EE20CB31F07877D555A9D9A7C53C913CBD1E974D445C3D5A79C27C7A2935CD5237A052631F46412D700C247E75AA1F23205E1E8538CD872CD901605E1A36CDC0939652C2CBBC5BB40D03682CBAC255D392AA3DC007BB17C0163184E7E210C575F818AA0DC867FDACA9877C853B2BD51D038A5807B27B1CDBF3E7930051C87B7DEF1E3CF54FEFCDDF79F4AFAA612732B6DD1D2F9E4FB08199FB5ED7C03BE7CF276E7C7DF54AF7AB7B894CF26157D7AB575DC93EACECF9370F53DA2D88E2134616988BC5AAAD56ABDA3DF187893F00470ACB1497B11A99FB5A0AB8E19A49D851815ECEE29FD1518F41BA87E29BF1782EC4E4BE88229A392B12CBB16A48576C0B07435A81BE534869B060CD6204FB30199421114C9AC2CF1A928E235208B80A2BCF441C094ED4313E4A4ABCBC699290F6B85DC39614124CCA0B7BD86D06AF28AC0FC16B4A6E2E09F02FA40452A9871AA0AC4A710119CB36C4CE59583052FEC82A1D34561ECDC166C0AEE556739D502230753D7ECF9C19951E4300415A13A26468595642805834A971407E0502040FD080039E7F205!
431D524515D6F23083036D8E916804437FC704FA8B81A0643B39C5CC043FBD93EB8A28
4961C64C423CB78151E3672C23CB82907130E278526CDD09768DEB50531F99110A4AA098AAE54E0E44F4EEE9E39F30B98E8F0F9D0E450E85BE3C4A789A5D737BEBEA3E3A32DA61246442FC7E2E68DD7DE50E856E6ABF3E7C136AF5ECDDFB8F7E9D5DBE7AF26AE26406AE75F75BD3EFFAEBBFBCAAB859F741D9E55E6442A02260AC5AABDAD5625465DF4D91F3E5392CC763C483D60125589E01DECB03CC4C61B02D1C43C2C7B28EB6443A11884730C6EA00F14A95987AD44A0273504689849DDCA462C1BBAD9B158838D8344D3930C16098B0098D30F6995C810411A9604C48729AC24A2992419B19640DB89D2820150A6360DD521056DB0A0FC970ABB41B1E3E9DC2BF4D2D8AF2EE852F476884109B2BF0A38898A01EF51A4A768DC020C5CC8F7C7657251500909BD5230A9796145802A0B0B47DA92F4716061A3542E85000A021316694BCF0200E6E5F9A8804058B54BF8E3A99C6BAC0A64E419D3C240F81F06294EE31374AB30E239525168797947A5B28B0A4FE905D15A9A3EA20630D5C526EA2CE192DD268C179414B341D634C4ACEBFA028E237C661E374637B4EFD064C7F15D60E8F9E1EE5013CBEE194FE7CF1F8E25CE5E2F868D1B3712B75277F5BE72C57B3D6F87F4C4F0E7C3E7CF3FECCA80883EFD74FEECBFBD7BF7E636DE6BE6356CC1F0958DCFBB9E66B4243C2FA6!
24429550C8074E7BABB1DE5ED1458AB6F8008A879587CBCB3A2C4E4485E989853C408870B175A94D0460C03CF4CEEC88A5E8B614A245F875D6937BCFB7EBF54928B97A299E8337E664FD622C42836604D28FB65AD71E667EE2CE7928B440248881B269C274F9231F3D811DE3110FE717CEB033A263514C62BA5D5B0B7C2583E2B5A414C7690B3C0689CB8740E643AA26458A753D2782FFF1A120331DF083C9D6102C9B35C2C835DC35435CAB76055B54E23B0784BA017B05374A5A800373A41109B280015F906CD8BF06E321674BD37FBB5D238768E90041BA200BAB9F9AD64D8E87B080324A6CE93610EB58E454839C0A99847B55F905DCFC10F849D1A37064545276DB2B15C762696989C23D99229D938B1934B3A4F7DAF04C23AB1437879A1D1DA73B38C661136604FFE0AE9E499C9F2CBE4E9C0815FFF561267163C1D3DFF67517F5F9D7DE7F4D9C3CF9E78D8DC84C396B2612DFBD3939F14947F77745991F840FD475EF55D7ABD70B0BCC7EE14749AAB16225DCDB1BAB562ABDA7CFFCC384A2DFD7F4E524E8C756011F308E9B851315B135D356140B6E73364BD800F97C975216029F5B8DB80CFCE010126366A61732A905F8E03AEB89E8C005F88199E3A20B176B86DF640083BB8B85FF945E72B394366A228D7183E77A8689C52F18DEAA67448318384142492D87630019!
DEF23095799849099AF092643EBE6CE003C01483B5028DC1A6528BC7BF155DC2D53414
913E62899666432B7BE197521CBE81C5912743D6E874A94C7A51D437E0452DDD2E78596AD7A80446ABED1698C1B958BEC7C1033F18B800C646A08035F1F95955853F36C0B531A6173D70135FF671D0A0452445036B6ED8104386D41DDBB633628BC0568825D14E42C2C94014AA16DF98616F4E3659B2110F0F6D16E1D26432D8A399C48BFAA6A5DDDAF1BE7CD7D7F5EBAD1DDD0615E99F5E0F1B89964CA11918B8194F0EB74659F5DAFD8665EF5ED1D0125FDF4B74DDEE8239637C30934924BC1EA0A752AD822D7EE8FDEC9309580AAF12AE30DC94651DBC144AD3A306361C582F37E2D84A605014B117D9AC83C7796C182718922C13826FB02436C6A4C863C1AC94F28BE4A176C2931D7672D85CE4941C3760338F68B175C14ED031A97BC5CEE26A311FDADC2C86A01852A9349082F7FD30C51F46391F123229D1D901CD2BE2EA6A0B0A085DB1C14AF4DC3CCF4D4A1113B4E78807EF9E2B94F757C3B96269AD54E2C8B103AE3B65B6F6FDD3A7A9BFA69700ADA5BF02618511F06DC1831F2E8E9F00465410169526897DD82092C712DD126D24D0C9401DF18AA016F750E299241F7A5A8536C4709FD4496901B389B0A6AA82C964BF022787042EA9B09920D594F80AE5813C43A16BCFC322693A5E84B42464CFFD419928C289457F86E7651D3BD40B28B5CA59E595A1DFC85CCD34B!
743FA0DC5EB3BF9EEE989444AB737DE6A5D9A17364E0C0D0C5CDBDE9DDC0BE74FCC271EBAAEE7BCFDAEBB98754280E0C2AB8517A9875D3067274E300F3FBF08C7BC37DE5B817BEE56CA5F5DF98CCD8BB452FAFD65769E81BF235624E25618328C57C1A31A5925F5130300FC007A28C2D60E1A3A8365F9AA03A04129B56EEEC6DD889D16FB42573E167201375BE1C384734061B62E56DB54E4A362C9E1638C78D01558B8B6771255E1EFAAA6F614BB9115234F01A0A70412E010E10F90338C03504BE3E8C4EBC36F61FA1ABB95415B1E993607257821279BE5248D62CECFB3D1DBF1D8F596CB757A0E4D8A295E1B633C96950F3121F2EC59C9073B45A1513C8BEF8522859E792071ACA821811D8795DF06E8A20D06182653C6548637EBCFC279B5AD838C68C82D3E1BDA1CBA70380421ED108B60B269780C7AC06999A5206812351CE6ABA3DA07AA0B2E40493D0E884F0CB9F19BEA0BF847D39EEA5917AE8B9D0E7C0E207709F21B2222498E33CD4CD74F7D2C4E3C33F5CB6E4747ABD77E984ABC1ABA10D2E6874F9E7CF70EF6AC6BC18E688FBC70B8E82DDA77C510A432A97BFFF44FF798D4BAFD2616A3AE81EEA9F6F5651612A9143044CA5F54A0897AABBD151F06AFFAC3FFFBE6A212010D2A3BF60E558702D503B28CB8D03AD9CA6655CFBC16719CA48B0E5222C020868126D!
09767478AB9906DC64A71DFADEC4DE6B26EBC957327372B0ED88B5C46055EC91521CC8
138BA6366DBC7620F88A369AA1BCA42EB86F25E282FDD42B233A5CE082EEF88FE94DCAF5B40B41F724DCBA1336B04C6017CAE46008C985FF4C3CD5CC4B4E1FAB98E937BBE773854DA2C95264BA5663D5ECCAAE246C170155487CDB4F4FED242150706FB25554395B622891E462D95B27E5A139F891298DEBAE8611EE4E976C78B198DAA2E19D30A5A290536128F48058EDC6329F384ADCB6434299E4A7D5050008119D82CD15AE02A959F0966B3A00B27699C8B446E9B965C8EA9AA59C6846CDD8D88536FCAB42BB8C1100926BD7D580E5093ED583C9A98B9C4C32CC7D2B57397273E39DD71FA4CC7E9C98EC98E78C84A25BAFCE262E2CDBB2B337D2F6EDDF9FA9FBAB2458FB5D5A16F53FFCC94FAAD5B8944E2E14644B4C3425FB51266D1C76EAB0FD29B4E37F504B4C2A2150B55AAB14AB558099569D6628A07C3B343977B9991456D018ADFC935EB4D37577F7E58774D9089B086C98016D65FC56215E3592392F500A958F870AFE4671DBFC93C59AC34B9572A7AA2A10048BFD92C864AC55065331E02BB152B4528F1700C4F0BC19A72348DC5D86D541A5A3944619AE4B3A49B79BFC7CFE58A231C9CE2C7C3ECD28EABC0122B1B0FEB3899BC76F4E8CD6B753FEBBA4426F38F1E241B63282E5B1E99ADA26658C0AB3DD6A5E7950A866217662B08C104EBCF031BB23B9D62B026!
95A2C60049915D24AE13F8EC81F1894ADB648AFE562AB88B6421CEE4F4F4924424D252D59B963B087691D701F6E8A2E1F38E5874F90AB0950586E855A787D21DD73D705DC1D23F9839D51B69F76B2AED1047DBB5D04D2D659A4B1A3E32D31F290006C081C0B33991065AC994CE5E5B79F759EFA54BACA6EFE8A877D4E3A142F2F5BCA1CEBFEA3B7965A3EBC68D5F6FDCE852E51BDF40458F1277E6F193B8936004B202C51C8E7740964FD681A1EE72CCD313DAC24F549F382A166D37DB1DE3560C95A1ADE37169EDD192CB5A6A9925FA7656AC10B8E8DA909FF5EBCF9F5738A641B1B2B61AF361C9D862167163B8096FD60EC5F72AAE1361F4943E980A86A57E52550702DD96948E082AB6810431C22034241143514EBA470EC0AEC6FF8572B18C0306D2286375F6D917742BEB00B62C0300E9C47C500C7372A118DF85CBC67CC919E949ABB49DC3551C0EE9A4C96839E892A9EE929B770CB649CA4F3A1DC46CC4F2D166A6D2623E96043F26A9496D478AE8931782CB74CEC54B3784950C2E7AF46F8E1A1334055DB4B221DD738C0E4978000FF63C9952ABAE167B82F64C430206F21F824272B18B7AB4FD5A5AE04A027942835410F48F19BF1599F9544F2E818A6C8B078B65264DD1D9D0605880B41452C03D7560E8AF5CBE340126EAD8DDFD057068B905E375A234747EB8EF64!
DFAB7B5FFF7AE34E9751F942BE3AF08B2FEEA6925C3FC3F8C91C7E180B77869B93DB87
BFEC6E4FEEEE76BC6FB5BAED4857467497BEB00073962D67BBBBB1282CC9AE84AB5585E2061A37128BE8CB8A57ACC045576D27FE1C0FC19A552ACDA1A1128C6391438AD8C71101FFC26FD3D8D421110A4E173493C9A5649ABA3AD956D514CC3468111805CB0E7604AFC3FF06FB443C978E38E74660059C9EA2EF167BBC02875DAAE3ABA567AC88EE7143AEBF1262829F7DF51536A8FA6E2C2816E0F5D83A19DEE28992D6FDD166CE61D281790D46A6C94F11CB18011AA8469E4EA73FC49DA3818BC5ABFA7410E6A457D803A31A344E0670310380F05151BE3325FA9B13C6AC87289874F082A09820356F50751B74E53DAB00739D574DA15B106E81E3A908360937C02606F8D40BE4E2A8413B0B2E26B4027F745A72810C8ED13193341004254C85CD6C87655078D0B959584AE2B801C372FFE313034096331319BE72B9B7B777E2978E5F3896A1A3A30A1F2DE1C787AF9C7C771E862B94995F0C7D288B0D4A417841D7DF0C87379B4D7ED9220034797A17722A16C9865E7765320B415825A59723D92CE44D1654E401263EEB7276989FBF2FD1C3E5642AA97057F0261ECC9162255709C121830D027181962206BCF062251B099C36C7C9C6628E6D7A10D8A030CF85DFC6610E5C5CB86516501AB1859ED85A1D723D8FDE1DFE7DD6630A37776D7BE8D9662957EC2C853B4B7B17066!
4DCD5D1C3C3FA6A6EAD34585A8D8F023A78FD08D8458A667842E0A4979E2EA5ED200DE0B8312BBDA4BD584AD3B261E7CAE32D4EA511D2D125705730C555D7C44289841588048550102423625A037E31F843A326F8A124C20DC493D6261F3A58ACF208AC5890FD63F25E8B4AAA580F1A9E28AC18F7095C3AB93170EF65685294A6079E85F05610BD3618230A3D3BFC2FCF2F0CF9B8ABC063D608AC99427754F543117E28463B60B397169EE2F0D5F8B9CB4CDA46E443D3D5B8F2EE5DF7E54B1DC7772189F05B31F485C4BF6D6CBC9BF92EA1A6EEC1406542E1FFB4F94560D036C948C5F0A631DF556E35879A439393CD78ABE378C7FBDE58B71B0B17333F25242AB7907A90D1FAFA224E99B1204FF520B2639C0A02D4EC286C5B5464A215A77D506DEB66B618B23E847CB2C53874AA971DDA7443110E0061CF3DB4B662C2DA70948CC3F1205624AB2A425234613C74247A830B6A30D6882F2D0718BB6665808D1595209C69B02BBFA718EBCDE56A1CF264393D79A949B4053569D20DC4C05376F1C33059D64CD6AFFAFE0C54109CB474C4873F592AD5622CF2ABB188205EAAEF3D3F2C85736E3EF72CD7E38A5B166530CF518DE81251F03830666C5E92A201014D54B26FED009029216C2D70B709A22571B32425037BF7B708E307AFDDC06721F57DC879146893F57664A91D0E207!
2253824D34DF8607D9A09643DAA10BB050F9AB1733337C280B5CA2ED00F7A88E10C666
FA420D696F01765B413298F577DB7CC7A2DCBC1B9EB66ED2B27BB7FE89DE8D89D048A705A31F537E75F6C94DF0D27BC2F9E7C6D780B52EB2ADB175F0C0DF11B71C39BC5BE8D583C28DA8FB79A1DAD6AF5872AD6BD184B253212A613EF916E79391B8B70A8279821ABD035A37616071F9EBE26792DC3CEDA3AC84991CC455269AB1B460FEDE0D370C60C6F84BFEFA89206648ED054600EB38C571BF23AC98770D1C9C3663BCA9C645084EDB5D851318F73AAA2C17C3956FC41E1E8EB798B86E1E080C3179DFC38EB199DB2EB06856C71B7BEBB57AFC2A2B9D97C9929799B08C39685C9AB96D8640B0115CBF1C16C17E1B3385B2BD4E371728D189D361C64591FB705B0F63F6FBF2D704A9278342D1202E22309B120F721498974FBF98F7FEB949B0E9C7F29270A52AEF27AE9C7BAF6B7FFF3216A14BC152D20B63629E259D3F0B1531F941223D1D8CF36871EAA129F632E8081795B663AB2F2CFCFE128B620654B0E6B65B129572E5E662BEC2FBB00D1EEE464CE565E9C1BDEB8924C589B43C6D75A26A1FCD6E511FE42DA64F9755143F5262B9A9BD86DCDDC0FD5DED6C4EEE91640A4DD4B4A20196BBE9C62FEA98FF595D023911040C4DE3276B302178091EDE1BD72A09E243B24464AC75A0290702425ECCE1753948712E562990F2DF55252B02602DAB014A60A99D3B0C4922974!
EFF98F55662338642D465B1AE3CC102875C32C38219FD94826B446C0C6D829A595526EB594731B25D61583C789143C9AB4046305D563071CE566838AC91ADC7C80AD08728A974A7BD706068EDEBC796DEF196747165D7C2CA9EB51473E64B45878A8B7C7A5E96D4FEA37A5AC058DBA848B0872F089110D38A41DCF6A8F24D4DB0BFF982F44042DD1C1E4E24F8BC449EBDA87446A3B8146C9C34077C07FED84DC0777F1C3BB11B0C9ED2999C30441A607FBCA1001682A491C79114639C03C8DF27ACCAFEF1DEED67DC706A6B2DC47C973DD97395FEFF8F3E3CF81A18E561FAB158737D25DDF8642A9B35AE6ECC3E226704316925AFE4D96634B67886069335EE96DBDE738B4DD8E6625A4DCD06D3B021F4B675C5555F17E8821CFA39E56826C23CCF8B201FD1306AEEC9D2447A429CB6C9FD6239EAD33852A94148001A792374EA6520B4C8A2DB0E490D18AA4184DA9FB81F571B211DB967C896D644B87718F7530DC0B06C5968C9781E62EA834339615CA7BB0671EDB7CD823D4E3E6DCF5DC2A563E4D5F63C6E22CE7191356CC94A823C98945C67C1DD140328CCF290BD793F1DD2C08CC713C972858D2825403B50F0F7A39CA21AA1F1303D3A9A73FA79E4E07E1C0252EE112FB2BB990421212B869E743983B0985E0EE450B0193B12035208CF6DDC1C5B628C22794E19770CB03!
E07D0835B573CC6DA79DCA4834D19288F820CAB9A4056F1980491B74E70DF138F1603D
2D054622111D9BC545D81BD91827E7B96C42F31B8DB2637D75E587F7AD782B3EDA6AB5E2CD7AB33CFCF9B9E1869D4A1442776F7529DA7CC286140A6F4A9FEC2451D40C2E041D15F15213727CF73845F96EDCB3E79349B09F92C12EC9BC0E627E36E7302A86E72986D4F3ECC8E0D81DD0D2A2145CA7EE2F2EA6349959C44E680E7751F8B9F5DF9898F9AF00570B1C9096840583039D4C0F2B7D9148399B7521C37331902C682FDB1373E3B990631B600B85AD53FEE83E244C95532CBDACA9AB2115C24A05B6BDA29FA56557594A0C0327E4C34233E84695BB0DC8B066645A2105A4C3D190D27825E354ED8264FA39815E4B2DB17E60418C4410A711EC4CCBB2A7F5E9C0F810572A8751EAED5BDA290D2328FF48B7DD354E8A2329498AFF6F3CD4DE92816B2D990953A5EEE5BB51A258F782E4DC41BF72CA8CAECD4C1CAB8D3837030828C24887DC90871D55CC554312B4C0D1C52A2789FF704E0EA5CF8134027036A5CFD2E128E8D7B3ACB9EE72C3ED9E8994673614BBAFAFCFF9F2CB2F0FE61A2BA3B53F5EBE58EDAD542AB952295EC9C59BD9E1E137A97A723EF1EDD0317D7E31F37AB818B4EB8B186AB2F72CCEFE334288DD1FF556C7690EDC031BEDB662CA1D2D99D66D32050E5537A24B4E49EA90EC88F284F60C38DAD11F4943A25C95A2C6657EEA9D0FD782B1320F326C706!
56FA20C1BE21411182DD576227A7229751EDE519F2AD3AE6C386DC07F2BEE73ED1D8694A95E80A9C63E87D10D1CBDB6EF378005CB88C0DD909C8A09539A053959594FDCF6248E3E8B05862AE700C5420E87B2B355A8419F3F5E6AE5A0A981216625EC20342455EBED12A36450A0112867313140C1F487F48378EE8119814803078E487CF16F7AE571E0794DB7E3025258C0509F4C0AD018B27C9C0E4016D4680495289A1684051531F6C199002B22A5100CC628021F87DF71E1789EE757C2153F1672C5A962C490418DC88C681D12CBB81361038CB39E5D77DC5AA973B4F46CBF55CA8DC75772D2585E8D81772233E5F24CB9CFEA2B4FBD9C9D1D981D3832F6AEBB6FE3644747BC63F217B8E9C54A68F8D5EDD7B1A5F91370AA8CF93B775E6DC4658CDAB6E028BED96E616CB25B4D30D4EA8035A4283FBEDB91EDCA6C60FF7EA9A459789E1E4EA7EEDC482C4E072387A09C53EC33A3E56585B5A6A7EE071B5BE9EF2FDF0F46CAB0F29AF5FA90DECB0BD2511DE178073DE84F84E8A1E2E6B434D2ACA4EF1533E2E6E2B92C135C1C9A678A0587E66DE65AAD6AD9F52D6B43677CDE513D97472783471EDC26CAC588450D24B063245F2EB93D312FC23E074A23503947D63673BEEF489C488C8A68345DD23432782429B9DA69065CD20103B16C5246DAB4150F250E64C7E2D354500CA!
7B535499AC2655A24B2290146D1447ABB5E77E9838009C2D80B12850BAA5E7EBB44C79
497A46A86B138067B288E298D03BD195CE0C701A4ACAC23552230544E23E6365CB8967B5340091B86FC6A2D3716DF9FAAB3ED6E7414D0A9D57225B8A0A5D15A994DD4393AA5E57275F728870270DBEF3B1979D77DF2F4190EB43ED3D10B4DF4E6F6AB37EED34462E1DCEDD7AF1389D71B4D316041775180A021AA6A9051A904713D4126028676773B5ACA0D1C9F1BF80033D6C697FF068BB39439716BFE44A63DBA4C5BBCBEC8610A8FB4271CA8D76E9196C6FCC5071A7BA271717A0150D2858B65DA07ABAED95B14345EDB70F461F3186DA46D8195CE429170CE2B8D8B17F368683C990FEFFA95F198A3A7232EC3CA7834BD3BCB5059710641AE18A22175E65EC0EB04941833800F1FAB942BFA31200AEE60C4F5989163CDB169188199737D07877E4A02E252FE0707913546D42AD1A8889FD4D274BBF6222DD7A7839CD663B84EA9BF71D06F7C2493F459942694958ED2196B27F9A6833419E92D19546E2AB6F09094EA9A7ABBAB40AA3A9901933D27139D652A18E3F5128E33980651183FB469CDA55BDC69603FB95510352C37DB7EC7802419DA502BED4F4DEDEE4DEDD7F7F7764BADA9D1D1AA5FAB8DF9B9D1C1D2D4EC918F0441B35BB3478FFEE3E5EAE5EAC9CB9C588E6DB7D55152365EBCD8A87EF7EAF5958B57FA1A39BB6B38DE24F188949659D7F54D99D7B0598AC7F1!
DBEA00F800A3E320A26AD7D31A0444C361C7ED8CCBE911E04AED44E2D6AD1399C5070A29E6512A680FBABEF8486B73508AC5D6F7F5E5DF20053C65389F08EA4855B4CC890732F92395027EB280894DFBC1BA549BB3AFB03B586CA43098E442ABBB4140408ED1A74BCC21A665B0271B604C62C1D03C8B6521A198415A2194588F3E6273682CC0E6B9125684E10A226A70B6A4622512625C142873D95492C5ED7EA5E299415CC6D4DB019A0FA9329A30A12112929626A53023ABB77B4FDAB809E2820C359A51D61549FA755AA72BC544EBB42E834403D75E0B8808EE8464B8A4C645C2F3164FA523C31494A88619EC00D666B2704E62D13A6BF782DA0E0900E13336665828E7401BFFD9E4BC017F4C66A0F5B7A65E1EBE047C464BFB2590D168A3E68EF91CE3305ADFAF033532971608E2581B9CF45EFEECB38B273F39137C7D4247AB59B295F8C46EF9695FAFF5AEB5BBFB51FDD59BEE49E9A0DE1EE2F487A140163581A1401C6DB6288A263898F1527757B556CDB546ABB1B18E3A8C696FD58DC5AABE93F815562D7547A1A1CAFC8503CB385E56DDE13810DCF6E00127F0616F3F9059331C92A64742215B5F4C2D7675A5025DCD6F20A2CF0E6652D84109474EE638720F713EB19755831A69D106C60792B1E899DAD284E7BA2127049B9C8B17E1F647E0F8CBF79FB0B7281B8A31!
526D4BA64931D35CABB4FEA1165909C24E5A32B5B0B4B420C511E9B4B6B49086025E10
FF7041AAE1D281044A89AFA34B8921F86729954E3D968A0D2D70C5C14892667F4C8FFC03EEDA3E5650BDC8E229CAA3D487749984B30B23150A1AC710B1833F4BF887617A2B289152706C04BC26090C253827882801F9AD16544311871EA649DAE528EA9919C71F73C74661AEF6A7765F9E027E5E72F4D0E868307B8F03AD3898080288D3894647FB5F1E69CF393E2243FA6A97FFD7CF3EFBC367A799C63F0D61D38C77468CCD7A2B7DE27C3AF3CFD30B6F0EEBB7CF0344F5FAF6A460A8D96C8A1CE26F1DF434B407D3061875FC02633691EC02F7B57A73FB031F0D5CEB18F5CBB06B769FF556CB74FD7ABDEB6BE5D12310D1931D2F1CBABBB3F3E4C923CE3FEB022DC95C19321210B4302D93679615E86C45F68811CA864224666359FBFF38D69A068DE9749571202F0B5650257AC018383D23EC37D6B2452286E58654697AB1A584356B2A5283CB9D9AF55485F3D53C975DBD0EBB72A4588012C2A2E2086C551B3F81829601925CE805A9E6162B62324B63B302F7435A4363438684712405FF58D39D428006786651C82260AADD210023F718ACD00ED704ED651F3A31D27FF3C8A23B1C01A97A613631483F143E4652B7DB9A5A7724642F89E980932403661981FAA72B47DFDE16FAB1AC0FA7118EFE000171C8CDFED43E48A7360A03864BC174CFB13122A9C5B98D2F830969535!
39CE638F561F0EC471F09923E3F0926FAECD2C4C48464CE265BE1B0D975E375D79DF93B274EFC7AE3C61D6D3AF155F7EE64BD295C144C74D896B6FCBD60C0C3E42EC475B3C5E74F749F7D5D1EAB56C7CA7D1B1B658822E5ADB9411D0CC658482E266E29DAA3D4BF500ADDFA0B677CFC0597E07B2D2E709875EA415730EA41E21A6C4E93CA232F1E97AF8FB139B358D3FF1FD666EF0425D34159BDF81F74DC785D9C408083C95656BF41424758CA5D74681765E69E127C979AE195365D8636F5D402F7AFAA06BB5D5E3198D6C78082388B32E18F185916578C752EAC54818B4868D9A12CC7F4699271D1821AD4C055A3210AEDFDEEDA850B43798AEF2521A6E90FD5861F10974AFD4C5692795CA9EF4574A7D2347D520E34DD1E504A474D7F08D5C53726B134702E2B1A0CE543922329E90EE24B0B184897A63B93A5EA96940211505650F10A27762E0210711CECA83BC6E9C2A36BD7C834044F302196B36283B1B1FBB072B8A597A387F7E993CDCAC43F8E5AFFF8E5B9CB173FBBF4FE121CACD6C4FBE67E0B5EB291CCCC43C118C5D0DDEBF712A95422F1C7F7CFEBCD665DA0235F6725A793937BC0D01EE43463DD1DC73B3A2E0DCF3F9DA97603D8FBA363DDE519AB0F5E51C4E4599F2ED5A51C3144397D028208EA4813FD93641B3545CF7D3A3ACCAEE9F17025A41AC15CFDF63!
0594E96E5523EC19A2EDF179F28A9B78D448A513D5D5A77D8CC1261811EF1C3224AC99
7E801C028D6A5BE5526D0AA4CED8392BC18FE5BC408FC753C2F39BDF0A13A3FD58EB02FCB7CDBB6A934581CAB4B27096F62C093AB8C4B4F25F8033C487448C28CC1C0D1D78B4B424F30742966D168F0A625774ECBA731D6C8BBA78371B651A9329B9E5E6A8729B5767D22EB8804C52971F0C52D1471644B4F4ADB5594DB9341348911A4E4523AE88136C5BA531B72760EE3A7B99A4B66A9F98DF27A0382677FB497D0196BCC7457C71ADDB56036632F7E00A4EAD85877ED626DB4778C7CB50520FD1F477ECFD1EA47872F5FFEA19B6D3DEF7B4B956ABC371ECF42777E9DD1BD5028BCA9DEBAD7F5FAC68D9F7A4145AD5253BC7AB2CF9E7CAB95FCECC2A783A4E697E35D7A37BCF070ACDAC01BA8F6D6CAD81AE5C88CBD015B1CB1A54005C2FA2FB7382D6F71F191F86627D884FF4033646A1A982024C35E8321C4C17874320159099AC7DEC14599C02FF5F1F717B4A05D91C7ABC6D105060391D4C312EE01B3E811232872D382A24FE90491E357A24E7A505C9FE2D12D90F929E827A3F6697B4DCBAC9EDBE1A4D2FF39DDB510144AA4161E4AD4616181B228788DE9C00B6BCF826C575A088252D3EDDA31B0959011EBD220A09D62B8D4AE666C4FF0977036E5D2E3763707EB132517965A0862527A3295CAFC94924B413974D07519E41C83B0343D30D646386E242802E2C9D28B28!
91645A1243ADD6009DC618EC193411CD5A832763631709245EE81EE3069855E5C2D8C5EAC58BB82840E368887FFCCF53FFF9E5D8F0F0B09D8D54ABD52C1CE510EB051DDB78F0694A33BE0D15C35F14F5CC032D92636CBAD96C7190E7E41E634393D78825426A77F7CCE933BB677EE99898E8BE32BC91E903881AE599998D485FDF4C19B23AD267DB1BB6FD564F27A3CAA3C545D8B013B7C49271D222C759E1200770531C54740B325AFC1999AB0F129019E9C10A720CE37D612E0DCC207CCE1D2D25C0D217914ACB576988C7AD8BDB953694806082E333D93ED7E8DD4811FF8792B5549B78DA9227D8926DA1D67E270437FF6932182DDA1E3E1A3C43ACD907E3242432CD5E20F5713BD6184028F573EA43F14ED036C65EB7E9608AA4C6826F4F15EF5E8B0A06255810547D486163BB72BEED9349F17832609E808102191DD4D107825BC473D9F59C06E7C34004B98DF572A3E1BB7ED567BD945B636048FE1A1C8E561EC3DA95819E2AE0D33B2AC8E96EC8F5E062B5BBBB7A11BF81AD6B34D6A19DC6AC87DA23CDB0CB596CA162CC0F5994FD0F13DA137DE7DB6290BC6FD6E1D673F4030DD7248CD8241C31E6D970E1F92E6F3EBD7B7AA2A375F9F28B5776F235E8A73CD3DDE8EBB336FAFA80A4B2AD0CB7EBE44C45300449B4D8DEEE2F06B33B1F08BD1811151E132C0B04B4CE55!
D3EF07C36053C16C4F4D0BA245CBF489920A65437A696929CD8CA80F1FDEABF98C97F9
312BF267A6266C8676207FE4BF4BFDBEC26F1DC9468C64D0C81094A327831644AE46206C02C5FC012C01072D4B245DD60958934203439A6359B290FC2D74DDC6D16F01208285DCD3CE940B5CD2ED7A0E498FF07B4482725A8D134AA550AC501CB87961B3C7613D34B31FACC87EFC214EF45B5C8960497E50DE8AC90487DD069474548A7B6AB191DE2A7B0D7EC757AE95DB3B6C95EA75060C7330628E0B48B9632E7004588DF9B4618046B59A1B6B9489A456AB0516EAC6ADD5DE1CE8A87AB1B7DA8BADD5EAAD8D556BC254DD0DACDC8EAE3DF1F8B5407E88BDA6F034CEBF52F4FFBA63848234476913D8E91822628EEF9E398E336C67AE1DDF9DC475E2697777027AE8E2C5936F12CA4697D55DEEEBEBAE9637824DE97BAB2495E1E44212DCA1FCCBE25F40438BFF821F39E95AA4A2D674D586EC5DDE51652CB58CD89743F6C1876F6E101ED7850C924117AF19C9BAB1AA5FDA83BAFBFD7F808B706DF6E6CDA3D78208EAC0FF4FD6FB85C6956769823F1AA22087D8224A9141D09A0B7E98A2033AFFDCDD7E58C676BDB9F5A025C1F5600699862C37186C0C09269D2CF861688A7DEA87A13099030D363899E5FEE3C68D3F3714FF6F8FBA2DEDCA118195ED8A4C3BD3AD32E5209D92C7D44C45A9D9ADACA73DDF777E37E4EA95336D5996645971E29CEF9CF39DEF7BFAF8F1D7D0C91!
B916F4F9502698393FC262F501A311F8F06800F10978541DDFC1A1B0FB42E0DD2F8742EE80B4C1F65F27051493B0F43B4F9124DA11D106D6B315BD13C482953EB33651AE683A202AD4B716068078EE0B3795E816469E5124958015BFD7D3E076090E07A5BA17C5D278CDA657036967052CDA9B580E87FCED92B187D41AC69E78B77F7772E538FB207AB29480B5E9E201D4D24984AFDD24462A6541A0B123A90AAE20AB89D4C5C4491C4905B724BF8EF8B35F9A39214B07E493EE2AB6ACB9F4B362AECEE56DC7E6534FA87ACEF04C5DAFC6F258BE2227E7FE3D1A3733FF8E10FBF91668CA54B00D037DFFCF04B8C16BFFCBDF4F5BFE7EAF5A76B6BF7AF1C5F484CD43A2839D58933950ECDC80F09A3A026EDD9319EB22867CD574747CDDFBE7A351CCA7F4D8AC8768D94AA61434D62703C1B622B8BDA453E7FD7F3F36C80D589A4935ED69FCDC6078FAFFF097C9ACEBCF5BF9F79EBCC3FFDF2CCC7675E5CBF7E6E5F5235E83D8FBF06556C7D46B67465BCDBEF4BFFCE0E2C4E5B860D0E26B97C64EC1E029A8F74EF0394B72828DAD4E86295886D1B4763070CACC013F0F51CCB28E363F374231672E483FD87A747D07A85B18DB923D9671E64DF3002DBADBCA3D249E4CE7BBCA2DCE4C8E074868433458E0B25C514DCF50D579E77B9885BCE2283A8441E5110B818716DDC9F10468!
F7736BE1ECB2B975B3D4CA5A5B917BC21C1D472104A5063772E4FA41FAACA2F075F4BB
7F4F5B3AF4AD26C3FFBFACB03292F13FCA18457FF802F93C901820C594A7E389B685F51CC76663B3379FE66930B5161EECDE3C2687D7DB6FFE8C96309996FBE7C7A0E75ECF7A864F09EFA215EFF81C0218DA18BF74F2E0C825ED52C0F0E4AEFBB932ADAFC8F8C402E235114D4FC1A94A27EFBEAF3F9DDF9DEABF97CEF7389A226720D14A83DF466F2AB2620F9BDCA9CAFE02CAA0DF4F70D46CB2309A183D9B83F193FFEF2273F3973E6CFBEFCC9D72FCEFCD33FFDECCFDEDD7FBCFFC5417FFC93F7BF1A5367B9EF82242D1840101F9E91F99D2A4847D87C7132507046865183A3BDB92499FF1F8AD69E9A43478D74642EF93812BB0D8F194DDE2DF2631E4AFCB09DDF662BAF9DFDC34DA26592AD952BAB1B5B5F239920C84E99F879DE7BAFCE39A3AEF4FF5EFE436360FCFCE057BE15314E18B4796045D3B9B5045BCCCB72CE822401E1DB20DF88FE787C3971BEEA4DA0453D46108197D0C21216175093FEC4A4979D966059C121E974EA4C9CC9A4E41EBCFB6CE2542F4B6A78DF7DDF1D1FAC6D7C21A969E29490B404FE4ACC4D2F27411098D6AE04D0C6CEC66CEDA0DFAF45FDBBF19E7F3776A47378F4E4F75F5EFFE10F7FF80334634C412C623F04F908C3A11FFCE0DFAFC11B668196CE496B5909276807557D994A2C2DCD72C9F1B291E0B95BA9DC8D7FB7371C7EBEB7B7D798!
3B235A33E4EBFC086E0C140ED1F148D723B5013B7EB8C1A22B77C7FD9E4038A9F04F5F7CF1A3C9177FFA78FFBFEE7FFBE2F1CEB7D7F77BEFEE1FFC3B69249F8DE5F9E6F47A6EA597401D2E1CF008D8E2E5B49FBD5390A66863777D17B620955965042D6D6B7FD4B48BBA53F0119D2EB8BAC4E30DF955DE3DF455B5D6D7BE3BB073224B0FDAF4F20E7F9B70DAD3A5862AF8E374CF7FC00E6C53AF87144E3105853AA4B7664BCA84AD6B52E2283EE16C9E138784879D4E9A83329FF200189822CA48AB03F540C7F213A95DBFE6F965DD7CE4E1C200958E432302EFA4E53897A709457D7AECAC5BD5563A95D45F75FA935635732E4B70B5A6F52AF352BF374D015992E947BD527DFBB0EAB8FB1B0793AA3B3B70BF72A783917C5B6F7860B582FFFA03C68CE4A0A736867E201D196EA8F334B4B656CA3A5B85D9385B2612C65236D736D620ED9895524475D57104E4A666BED790E0F9ED5EB3F13BD08AEEFA436F3E87BBD99E009F2136F773751AF26882D680F08261FC40DD4199902035B87DAC49B31ECC84716B7AEE7F7AB2BEF3A3515FBE8091A30242FEE676006122E98637031D3763AE5390A63383E123E417B0C54450CC95640038162A900E75F7A2E7D1018344CF224E136483C708E05C068032ADDDFD8D19073CF29EA3775485E6BB90B4398FF7FDF67C8C923421079FF227!
D407C24028F45B5859C4B4B401ED4AFEC510C8C1677F10D4950DA9DB150F438D00432F
E9B77677C62352E37A4ECA7D5FCBB4DCBEBCA5EE93175DC0E165D62BF4E469B77EE6FAD3755475C857815D27B54C1209F5A951D5246D9113213909A7C93DA72AE0AADA730F24CC8C7CBEB48749A5DE2E48D499E423F3519208629160DA0E1646B296EBD68BA15F3D987DD17BE954EE8E867F90525E18ED6E3CDBF897673F78061636EF8A103BFFAB34F5D8BAFECF3F7806B4BE56F5475B4577361B91AC34719C6AA924BF54ABCBEA7239ADA6CBA531E9D2EC01140DF7E67BF3B92FC9A82950089E2D1E0D38BCBD3DB4619D76A3CB0CC40AA3021E731EB292EA804638158CE356783C8698C24FBD02393473CBE48B98DDD4DA83060CC632FC3CFB265FD9285A3F3954F4956DD2D587A9110081D950D1A1A85A6A79366D36361BFC433F6715859D4118E86184DD23E35EBF60EF307B057F5B59238A8D5BE07E7ADB38F3964C29081863A0C8DA72CF6954A2CB3F6EE97D55DB4432E7341AA099FD614A2145D31A8D771E491B21D5090CB4DEAEC05BEC8D534EEEA11F476E48EAA1ED7750DDE1BE3CEA09580291D3491041A471F6DC998B7316D2DBF1A9D15E24BE36D7F862A1A4564D6C0C4E8DE01453AFD54D2D8AA2C3C97D0143FEE69D4BDEECC946E9389107A6B2571E428FAE72309364242FCF78E1F87B891C0B856C165ABB58F5BD56F182B4E7499022ED4883BF7426D924AD2E5!
30144124729FE3758E293922680889E0BD4A306376473180E371B219417407AD44175ECAF2CD0487B648B0D68239D7A0FCF337621DCB06B6FC2C18E2AB0819914300EEC1BBBAA718568F5247C869C33431BD2405C4AF30F7DFAECCE026F91C2D6D09D073E4D64F13746470D0E95AC2E1F24D6B04B4B2CBEC5BA240874D5BE1AE3049C6D72D0B48DB70475E3D713DD6D91658281A0E112C3108429A00777558762A4A999BC1B031A02D50022362D799C13DD37838F17F384497AB3180C07A9D70ED944F221AD5E860368D2F0DEC3293D42033FEAE0D680284392082534500B71BD27588B372E298E17CD4764024828219AD26A0B55A6E44E7A68C16BF5EC60230BC29B6134D918B78EA196B7BB5BF09B733CCF2BEEFAB3271244BFFF92AC211E5D63D7F62F92BD0ED6D626CBA95FC82E5C35A398071EF2A91D472207396932434BC82ED12DC13BF86E3C1FDA291143A8D9DC1CDA67EE501A35780BD33E4FF053AAAB6985B94C16B611D2939AC8CB878764F9F1313B7D94399CA43C3F596E6D729674B037ECE03D9103631FD6E92892C0A85DEB1D4A212EE62BF46229CF52BCD5DC41A78F1A5B0134F9F0B7AA98566087979C78235E3ADAD421A2B02E4EFC1AAEFE1290BEEBAAA089265B5AA35F4B55B82C8F12F472020411C39022B6F2AAD9460C3178B40BC43F1538DA9732E3B7C!
07872A4556C6508813E4F75533EB74C7E0F6D142841E112805BA7F77A5C97F20A31D5B
959E0D5E1902AF194A4FD3E29A22939E42D0E9EA06AF8513DD8AE4FB981AB2F53296452EEB249589B4EA5EC4CD69CE83F87E996998C526FE0C24BA87237FC4358A8C8CBA852D99DCDE0D5F103D430E6A167985F0A1A5A4AD20EE3D1D6D94EEA1BC7B4A698504F33C14682EEAB82C4AA2638AC3DAFA58E19F2256C0EE91E346C5AC31FCAE3EF214531ED18083E482CEDC9739FB3A2B06BA78FD41EDAE4D6C1A283D58819C2E91C76E3B1E6BC07B1C4ADAD975B85EAFBA9611FBCFA2A405AF0520FECDF18E6058EEF1EA093DFF31A0D9B81388FC01F35EC4A961495B4325B872000A79018E218129C71B602D919B00B490B93F768499FFD3EB818C9653A17C3FB60D283CFCAAF937A22FF832F06F20A95C7C145417AAA53520A1AD5F97C1A7F573CAA6485D668D492FC16F80F9C969F4FE755CC0C850B99C6BE1559D0E74560DDD7AD6CCB92AE82409726DBBCA0C1895F4AD226E4AE30356809C894E043E78718AAF34B22A892DA6670703D4DABE961307DFBED6AE9FEDA24DAAA0DA2403E7DB435D26BD7CABC33C7448C8194555C89A47FC1B6F6D9C6813BC9A0083C35C6D92D94E3776EFD620B6AC1522AA730FE953C27F008432263A43DABA6F072F598844222A3E1DED07B4544C40C812AE3F39196C78873229D1671E02805A76BB7D9EC956CA5B0239E285C6CAAA268FE826A83!
090CE7844A53C24851226F8FF3C242CCF800BAEDB255F208ACE5719E333ED0AB71084954A62D7823CC69ADA78B111D7A8703558A24280513D5B4D2D8129E63660FD2BA619ADE47DBD8EA7DAD53D1FFE5AD33DF7E3DFE4AE08884D1AFA72D9E2639FD035C6FF794C50D4D5C5629A223D20BE45F9F68061E443C46343E9CFE085AEA7C27544AD0F34D6C09693AD9F60200F23A251B88AE3021DDE65DBDFC5FAD6CECCFFA9342DAC3BD7100559D40FE4002A8150752BAB874A853E91A69090D9E695505A37C848D40AD78EDE4ED2BD3D29A1B464147CA113302CA19FE1FE973D6C6115E04EC8F04BA4B48B93D8997245B5FF76F145A377FB1953ACE2435530168075F1E1C6CCC0E66EE5AA6C9289B651247123973BCC0AF0E2969682B99C77D6CA709AFA172B1D96EA2CF6FD8E7FE2A0BE492C0FC6D146AC76457A63A0D649250CCC32A18367387334F01B42F512441B1E7AB1B1F1DB23C72070897432D9BF9DA82182B5408D4F0EC66F8740EC9E1361EE5D45EC8796FCE8AF0E0B0E0A6389CA2D4AC1435A75F39D87F7AFDAD8FDF3A73E6FAF56F7FB2712071F5175FF56884D0D223D3C403419C6F0293F5C194A507294AF293C1E1120EE2019570F182BA86BC007957A7D5DFD9194BBFDE835045DDCA4B72FA90E728F910DCF422C35C6E05562657274FE80083200A20F0E92502F5!
2D913BA0702AD6E81F1946296A1AA094A4A11A965A52E16A9DC393C9E4A474502D7EB7
58083E90E019CD0BBB95CA7F1CE90B79ED6FC691B44459864B2F9338EEFA7A25ECF4CCBD5F6CB9955E1508CB540F9E3882B9CC52BA90AACF41A37C714680F5501EBA57E5B0F98A658D91D324B00E2DE5BA21BDEBE8D1B973EB854653D71E0DA684D4E16385879C5C6C289985ED76070D74C4355460F7A4F65EA4B1899FB5BAD9E5095B2BC4CE10AEAFAAA4661F67DCBFE98AACCB0F52649513C0BB2A724B848F5AD8E5F4DCE7E643B118758BED0F2F5291C728B45F7090E80C590D7AA0B1E1405CDDD4A3ED6DA96C97D3CB2DF4CAF57A5DD2C0D82DE0DC1D9925C53D93BC3BF492805DFE5AB2D268DC4B54D231A853D4068FA6D4BB023C4724385A38D3833197D1EB005636BB6A931405F2653D4128B4E27A4825CBD40F1C879C6D4F1EBC7AB81D4435494D357FFB78DB3B945C05712B42704FD0500DF92EF5AD168A91C62C91CEFB231345CBEA415582481E9D65264DBD8445618E491C4035F211744A0AD81A4949CB2492DC11D52E539366D8D2C6CDE1E8F0F6ED62DFCD523338C461E177DE85283A0E2E2C3A2F3B5124452D4139B304907299252D1C76E078166EF2CD160C93C1131E15CBA1DAC3DA4716439C860A9483BAD60EF3F68548A91BD85CC564D2F05738B8E1D3CB4ABB7A89A13D18590D01AEC3CDCD21DE99D9C5D3A888F17FCC4FC1F8EA6A129300DACCA1B5D7D59!
C448CC688D1457E18E90D0F8588D3C08A6A20944CAE6FC3A1F203E303F3C6050AAEC9A30AE390BAA96FCBFF5284D0F46F6311872A2338F8726FBCFFAE2BF8095342E98E12434C8D4B1A42630708AB959FBF095801B5A1AE640F345F1C851192431A907C737974C2603B0C91CC785FD0956617458F5ACD871E753F24CFE1D31881F4695C03C5C691B4852FB1957C643413A52DB056ABD30413C7741A1D4FDD6AF57EC9DF8A9C8A23C50BF6F123EEF01F3D5AFF8FE02553DC7384B1030249106955D2502B1B4325A422F97F34B8746FE0ECBAD54842C60402ADE457F936069160ED886A8BF2FD0C9B47CD700FCCD83D06CEAADE68A3BF19DA8131A64598363207CF0154381B6EDAB56CBB03F1743A3392D046DB459DF7B0E10B69C2D846BA6AD3C8D1D7500C1B82C0866420EEE5840EBB85B5F5AE9137F0F9E2DE7A562B348A1D82250F831A5273FD539155B6E1BA018DE33F6A8C94F16CA8B1843F20C53E5051B8401EAB00A27DAA5D1CF7DC9E1715369E3CFDE5A38C98A8E58EDDFFFB729FA7615F8CF50057AF0C539EC8B5789BE8AB5B82A37097D423090364673B4CB75F08E699E1C308A6665257FB596A258505362E904E314C081066F2751D022B098E863E1A668F9A7DF4AC9CBD99C423583E2D41BE40D741B43CA95E294DCCD6AD09246A59B1E695F5471BEB8C1FB854238!
C988F3078E06D45DC1A41C04AF294B7E98FBEBB7DAB581D67D5E2220888A6D9A7D44C3
AC924C146030657082E88B73747293B2A379B7B9BF6F0034AA1E50EBD5DE1488DC7B3DBCD77217C8461AEC71C8410E3EFF8167ACB20A8107AF4B5E684C896A14EB1C338B2BF6562D944F012619F8610B9ECAB63DBAEAFC425C5555DECD4BA3A3B8F7389FE42364A61AD2DCF123C0AB179435D4C49877CF61BCD46A1B15C681203FCA450C1A811EF864BF7FA6A9C14624A14248551A23AC8F0A56BFD739DD252ADC9F85D88B7EDE37C79021FADAC0F69944445BF14EF701587E192F4FA69BD7E8C4C18684E24CF45329CE4212FF10C3922A605816F08CE57DC1E38DB9C2BE0E92E8FA164AB01A38AD725104A6304210749143958E9F652CC89268EB92C60783219A4553329A5FE566D3637334944957F28C4BBBC7A7DB40E38E4EE567EE432BAF014741C3B5EA9ECECEECEA025D9DBBA7D331498B42C86F265390EF118BC55169CC31102FBB69C1DA98D62138153C6215AF346590D163BC5223C818186F090D3E2B558060FBBD354227F33A788D85133A4FD5430B871DACD853A68F67DB75271488A880D032286CFF5E81D2706018682D69A6C1A79F943295D2DF57DD252EC9C654EECD305369B332BF9AC7FD4620A7CBB36F757049F7CA2A384B8403BF38077BCBC0AB3CD38E3C824905994CF74210C28DD378050834EAB51B992CBADCB5F3C7DF1EDA3038922BA5D538CA307E944!
9FE049EB998400A750025E705F1F2141F12F4A78AE829D0DF078E08C9D5E2109C270DBA7742A351BF005D7D9AC492E9267FC36FEF3F9F540D60AC324AA5960AF96625B0BAD945236E94DA41157CAD8C0544D7DD232175EBA9E070BC375B465BBEB1B8FE4BF5D8C2470572148BA40990D5780355AB7DD9D8DF57105A249855B676F466E2F9B0EF09C58A6817E4B6B1E47588B70218FB26F680C0C8AF551F9A8D9392A7718411D2D411D6625B5CD437E293661F00A6358A95F4D6220241AF0D7907D90933048E2CD51386CE8011B034A738E0F51361CBE6BF78E6C823D9904D2AEBAA5633204A0D4F5F341A22E5BE65CE6038551B104FFC50E4E0538C9C6AD7701F347D84990AFAFF720D1292332B017A9D2DB8F1CC32B0CAD69E8A40A59D6A3D6A1129D8C6A1F42BCB49538E39D31794F506596F0D9DEDE3EAC4F25845C325A6982889742ABDA82D7998E9C692215ABA18B8E8A20739BF850872B08FC05F5855FA67918C0178D5767D8BBED40D4232540C626C0A9F670578CDE0E1FD5ABCCEC7DB9E17980FC33E49D2EF7DCF164E760FCBEDBEF5D762713678A52560BFE7B20687CD9F2E449E67F22296D26656CFD11A2A84262DAFAAEBBEB56C0A371F4B65262A9621DF4909CE698A59DED847E493251475A32234F4E43197B342ABA00F01AF20FD61B8F0E5211E07519D3A1A6D4!
B1A146D18DA28D230CF8F202A48B05C45018DA8B6B9B8AF84EEDD3CCD4B6EB8EB0E96B
8B160311B1D56FDB01A4AECCB0ADDBF3DF58A5720E243F0C4F4C14F6E174DBE140892CA3025946162DF924EE77F5A6281C7494E16C19D09E76FEB16A2BE0822420E559BE6D7092C0AE5C9A705CBCA95E40AF9513C75660475F2E3B972F7FD57FFF8B31E83FE000D1D60D75882F46008B1EC0D6D99E53ED95324EF5089868B0CD6F1C1E045FBB48DF3C48E41179CFC7CE4EC0C8CC1D8F27805B4EFFA02F5F57B63BEE4F9C02C6E064B7B5B4C197CF2FED4114212161129A7F0D02B7A79284A47FAAD702F4FA0F03E337E256FC49A041C4648408A199ABC4D06C77948D67EE6EC143D720D928ABB0D397E7BA408296B9E5A5261B39D341E42D3381D7DC4946569C5E320A1A7073443F57FB1302C98E71B45C3501616080D6B07B05EFB470D97842140D9976E465D8E06BFA3B41444873F2D509528B8DD2B2EDE431E42448238690666F0F1909B9267FA3DDAD356C198B3974EC1A366E3CCFB5146D2C794D9C331F3B9E65FCE8A985BD890F70C236E2B4505E1B41CB943F122408B5BF04FB22032DB57FB9F7D5F8FDCB7030BEFCD70EC9AAE3777FF293673B5FECD088F50BBA807EB1F33E48D05FD12352AF791964788D52BBF58082D311DBC4BA97F022ADD55211C6C4D75880660DF900918EAA3DDE6246DC8225095722C6E8C4AB0E50EB7949804F1C4453DF19F7B29D0D08AB4CF0D!
75A3D4230349C6C02C608F61453A4E6A6678AB5D0A304DA4C65AD24525C8834CA53B33F9BEDBA6E4FF074A5C2516445624B9EB152F69CBF1F6CC99378D2738CF465C6714CA0272D4C455148631E49A739B75A87D6CD21ACED392BBA0195077FE8D1D2136F39A2112361B2CE9274FDD5C0589288FA74FF86CBECB03DE434801D59B3C3E0D36B1F8E0E622E5314370F9984B8870DF3F121E7D9D2E46F2299349B0BCF0A24E5447E5DA5752DCD5F756E0289D6BFBCFECB31F5300948FF48FD45A70381B1676876E522CD325C6252F567ECD3637EDCBF3C1EBFFBF8F1CEC1175F4DBEC2B1F241EFFD3104EDBE82E8353CA105C54EC6F2DE4F9FECF44782AA71DD2DFF8F7676C62076B03963D786FA23DF794892F6905020BC0CA126849AB4D3312750F045AB9B7F46F1AB6F07F5FA47DC662028B88CC55E5867DFF8A06C7CEECCC767AE9FF97863D493484A532A57B77801901DEC3FDB787CE6FAC6441EF92A863841D48C3ACF5F569BC16C7796FBBDEE221D65AEFC3E9B64EEEE38731D5321CEB67EB0E8FC2B1B157F708C8ECD49824EEABA41A48E46989B60D92141B4C0E364D71EF94BF98E943200EC907DFFDC1B16F52056D050B1182E9AF86D518D62431A0E876CD1D0BF373B2442365E331975F71ACD469784310EAE9904233E7A2B421933935509023DA050303C57F6BB51335!
C3563284ADA44414C525015B48D212A015292BFB9E07A2C06ED06E5A940B94879785A6
8D71210B21F507FFC41063A6C92AB7E58B93B0095F770D90F0332F9E91D69922EF7705D30DE799FE905CF73E7B22370158F4B2B51E5D11EF93E692BBB4CF674AB951590659254207D9D7021002325AEC674F1B26B693FE75DC30A2BE5AE0E590944819CE1EF71A122810118D4A3CF19C2D1E0C6AB8E4F4A09164710B1B681184DA534C66D51D2072D1496B7D4503458BE9B60305806BE5399CDD61147B40E9E610F2B58DACD0450CDDC7E56F052EC6289872A2AE9B9BB91BE9C626025CF89A0A337133C5E1160A4B35F79036E3B8CCD42A12E618736A4421D4096F17A1BC6D4C5D096370B91DACD8E226EF4F7218A58376CB3876B1218A1A2ED75F7BAFEC6A38D4AC1D8B505730358DAD88A6BD5CA891DDAE735BAAB2266994B0567F7971FBF75E69B47B311D58D133FB5AE1786FC5762D0A4E7AAEF0264FFC1D6CDF0947247741E7D0F160CF0A8B3F662140D4E72C54E7F53C13BC4C90B0F0A23D434813919A8AB33E976E4519CA630F105A1B055DAD9998D75D2085DA424ED416F825F971A011118E19147C019703749AF0E3C4A9C19BD5944526124F1F754228CAD92892EFC38193541805C961A922303D242888CEA447975366F7817DAB128144FA8A372FA7B7C9796520617133FC596755D7F6C209A1046301FDB9DB999B479900B422EAA8C60F18BE9D1EEC1645A936FA1FC!
057EAD9D653C1984644FC8D96FA49DD2DCDBE3B05193D0AAAC793A76D4976287D6E6B67869CCF047BB39E04051AA16DB3128D19022A65E3F5AA842AFF85DA8825351F8C60559D75FED437437E635A093CA9E4C972ACA37D2B61BB39AD8D87D0647821E97A8F2CD2D70BDDA1ACD767EFC4212FCF55F4A6A864DE92EFA1F291CD847405C3A7E27A12C5E7EEEA1D29DD0D2579DBC78D47B07A2ADFF08756CAA17A774E234756CC5C88B9E48B59AB88A611583D06F4CC77C1A1E2410D5B176879624010D90B5815324452E63A32B311097EACA1F21C30D0A4EF664B68E3D9C00A59AE53B255CFB4A494CE9CB80A841AB88CC3391AE520358C92808591CD138695DC90BF2C192364C10DDAAA5319F583040946CC459A280227AD8F59DAA64241CBA644C4215F045249C66A5D2B56936922072D26248EE81E440C9ED5DE9C8223CF11B7A98833951476387ABB372C86C543E22326A1E714ED4B17245CABB6843324487466D1D1235D4774F19198222B90708B485131CEFE7120C8A52A4DB02B14DBBB0467E5F2B6FE47ADFB364479F2C7D2EB7D5A533887BA8D4AD7484253A4D2D71D845767CFFC90B1C8FB02059D1E784946663938ED565901FEF99F7E43F2B0DC348D793A1074A478951AF540D1A9C9EC9CED3A72FAEBF78FAEE789C39CA566B5167749CFD35DAB724F5727B49A58605!
5CA0A2E61027070143DDB4464FE40193E6DE87260E76B475A389AB95EAF381936A1FF1
06C692D174861D099E25BD51D6227FC530D180D582088935BE7499CFB112E11783894C12C1E8868E3AB7A220850BA26420C53D5C95910782856B26CF0DA78099B6FCE98E24AA47F2349CDD9720AABA95385D06572F7139BA10F82351D0EE4032265AD1B970BCC81CB4B7C75216F20C4D5AB4A3B2C5464D2D5CAC5F36882C26E2DABE617B7FAC4004404382ABF8DDC36D9219B085024701D33035BFE39007DDD42A13294A88E74E9C8F993186EEEA7615E0C70F4CC181FE154DB0E45B12DB0586EA65D763E8D450E41649DCD11B781884418F848F2FCEA037374F4FCBB48DD383D76DAA4D53DB35B72C0B7461115F161C3D86E2F1B39D9EA1603D907362E5D77B68E67AAA15E973DB466FFA805F896F57ED8115E0132057505A2BC545D190018F219B90B1D83256148BFF30D8470482664099463AE52ED628512871C858D3E41778D6F5439998856A8BC125A9673BE25C19BE9F411045D122F8145BF45D898F755430A9672C6C82A0259955613A851226700866D3782F746CA5D2152CD9CDD99F5FBA0573187421181316DBCD62942319C923587B94B598E9C4E80F77B4DFD7B7EFF91C23623E2DC848E1B4C6109BF837B620F258CBF72FCB76F6DF1D7FF1E4F1D73B3F7971FD6767CE9CB9FEE35D3CB0508AA788AE1F933894F7F6738CA0BB3E27D19A4530FF2964153C677044A8E!
E47A32C516999003C57D3CA976085EC1F9F3C3DB75F71F850E280D22BAC9F7BECB6E09A6A682AFC1E54C91FF854CCF6E94BCF1C04CD0FFAC1A8F926DE099704211A68048C81442BDD331E0E1E863569DF2EAB5AAD9AFC6CB36A610889BCD58AEB645C5B1CE261249758B74855FF430E8E9DDD1F9F6BA986B2C10C203F73E46C29C5F81985A946FA36D5280573B9B3FD738F67603FEA2C3435A007C436EDC86FEB9A935252EEE41317668FCFEDBB3DCE19B0F9D795575095462D955CB4B1B1B10E70B4F16F36888C76DD5EB6BBB15319F946F0109AFB5DE2EB4AD677B2EAF1F1D55B26BD74E9FB14BD4DF4301C009508508D1BB49FEEA0CB8A788B9FEF3CF0024FF1F99E05446089A0FB2A76DAC4D35496B57C329BCC7CFB042AE03B74E6ADB7A01E7DFDCCCF5E7C7B46E0F05B1FBFF5E37D175B195E83191D36B3CA34888B48A2CD594180D23157627136836F03A6D3DCC443EA580F72F82879BCC0361C3147DB120D810E9AA16CE7388E5D9BD95131A2AB50481E40B23EA68578FC007EE7FFF023F94EF50AF08BA1158B3C4FF7A105FEF4F1FE4ED6F2C967FCEB14F27989FEC52AE3F9918FA2852D3F309060A6940BD73A332F1B32E89B8C04AA8E526EEA414F84AF7940BC13103B3DA0FD2DD6AADBCA47530F40A94121C86B60BAF6D0F5E10C9BECA4A4E5669C5D2327D591E3B!
80CA18939B5FA88C7EA98444138ABC52D1FAAA9FC7F488CFE3DFBB64C900E7210A2687
DC7CD5CD7A91C485C0936EA6C3939D131CBA0509D3993E39FFFFCE7974C6191661E8D0B17E1825A08F2D091EB6ED965A6B90A1F4546774777E3F99EB707AEACC4D0BC817546B3DDE03615031F3BBC56522A0F1AC1B46815461B4FFF1251F3D699337FF2F119C1B84FF7C7CE54AD86B0218EADC578DE7FF9BAE7D00B45DBFBEA7AF55F9D2A6AA20FF1AD90A7786134C361632F6BE9F6147CBF8F306601C74F9A07018258097ABA9D5247058FDB159A1EC47000462BF66F1EEDAF8F470F723718887BF6D7F7D72BD293F17C30E1A397C0EF083445DE0741AF0D3B55ECC346BD161AC1DEFAFEAC87D518D4B255A2280A0312A0D84A44EC8C01BEB6EBC029E1B624B60864C63AE5A81318D9AB2E01058C53D67E49437E602C33D3A0736F155295C6422EF2A51BEDC369A045577066367C7BA7F2FED516DB43C76EF7C12F02CB312A9E98D8A1BFD46C437E20905CA96299BBBE36438B3F595C2A7EBA14DCBC4CD32A79B0CBA074F5D2CFFFCB5553885DA7E345834EA8CAB01EB55F23BDA7471F6D3C65A2E1FF1B1D69D4EEDCB9C3A83A8216E81CCA691DC958E494B1076FA8AA63BE17EBAAE88E49E9DCE1B8335848B9598B2C1B49F5A394C72D816D407C82217A985B2D99791CDBC37A2ECD24B4E6460D0751F7688EA41B7555FA35EAD1CA41119FBF7CB0A1F993D4C3683BDAC6681A86!
A198F2865E1E440980B37ABEC007425EBCDCC46CD30AA3C3F735DC8694C9B6F7462F0E6B526C5C79A78B532232095B851E749125F18DFBD4FA47B315C03B8D920E7059424AC244022280DB75FF106329A840932BAB5F36878904555C18D306DCA8983232216924F61428A907CAD846A3DF9BED8CB3CC1D530B1EEF20E82988899452ABDA97716E2E5F2A4A594DB2D22725D791C747904E46AD108E16DD898B2C349A641367EB96A49DABFA437FA9DDBF7AB6B870785DB82511B4000A4EFD7633620F8D265F7E2CC240EFCE74DF717474830233E5A38E826DF46B0D5D87352D7D83DB7CBB7790CFD38D73FD8E9C818AA4E2E5A945450A51A9D933C54EC5B53AAA0681A41907FC459B9E40D06726F29591E6CFAD11B5971F9278BA7FA7108D8765606015F59382D31B8FFB7D2868C37F534A41C1A98CDD07F4768E572A793E4DECE35C1C36198D7EB4B3BBFB8FE358CD165866D0E0D42D91441EA4DEEE78D4E33E15654BB10C42092766C8100035F5C4CE66D2C4F29478A35848ED0440FEF42352D050FD12CAA5E9F9EC88DB4FAB68A90B328263F28578099470009452E399FACB7AA12D301FD74375434B431D6BFBB0AC323C13D18167E0D51415F99FD65249D20517BB7ABC480C952A6E7FB67180A2D69F0497C2AB3FFFA397AB6E357027F205C6263545D232A2C86AFBB4F52219!
A568111A1396EFDC61E034CBF916F64E59C0D0B079E36855E5DA399DD0B2EB552624DF
9306B94066601515B5EBB5F7627409616781FE6A240F20AD42E39C1ADDB586F6B65DEBF2129061E4E7467BC4ED507F4CAC40B49EBB7192A0875D7804510BEAFAA798DE51A44F7EA656D583D683DC04010114279E35C38BFB95DD1F8D609547372ABDD40D94514B561B0791B15E9140CF21C819B7819E25A0DFAA073A1FA2F4998061982DF31197762956C44238CE9993F65F3E2621288ED26D8208E6E8B427083EB291A423EFB43019492C6940E47E551C4FA3C4253C38D00072129E70E7374CBC89432C1D4611B615C7DF9F64183E636EBDB1414C0D97DEBE5B9224545D7E7AF5E73783A362B1F8FDF79F2EBB8DE7DF3FFF7E9196A64BACFCD3743B312169DD752F6A6019177122C8118AC13951B37C275FBF1E491875EE34BDB93F6C96F77290F4C68011E56FC431B0C4535BC331B43616810A4E81240396171515E72B8E0E1E88D4662CA62EBD8424A763AE27B55DCB38B36C5C0822D9A53C1164CC730D2FA7FC90FE474D48D5AC03DDB84E3E21478CF8563EB0A36D69A9DF2B8CE843853BFB84CAF89B1442536B5F2B8E4EF5864D55EBF302958134C6EEDCEABA31A1CBB4A54EEA7306B8193EF59C42237318B55B62782BDD909B0B3A5F6B127B0F5F1DCF847C381D187BE9410C84271B731DCA179CBFB2023319E78F7E8D5188404CB0DCC5AC801A917479C33908055124FAA!
A238CA380C01943124957AF9D40ABD5C140D11DEFCE0E50D81C672201F40953D056A328C87B043B454E6BDD49A956754730AD0FAAAD26974FF2E561AA230F7C6015C7DAA00003581FE52B7C2963124285BBF11E2ED0A86F1D7638232A968B4D550BD1E65EF98A4048BE925CED8935F8B364888D466957518EB10AFB345EC8B7ED1A0DC84AC6E6359FFB109D65B34F536EBFDEA97272C8ACB4725D08BDD4DD7FB2EE52C718869EBD043862846F137C6D6D6C7BB97B10376556FD557D9EE921049DD84DAABB516E8867B2F9B64EF50254F33C59491207F6A96E3904D6FAD1BA88FA347DAC9B157B24E14452703AA5E2F5E09ED9D3ED8F782D92E2462DB65C5D3CAB383CAC630280FC96300D59694AE62A9E4EFAA1018F5740A0C1481A0EA9E41B06FC38B5A588C808C0331025EDE73FFF3B29689843A37DCF60219E49045DBB6A8BD8A5A2D70C53AC3C0AE01BB99551E960B9EC490A922F214BBF03FB23F236175DF8E6C9B34A87CBE05C06A9B13CA22663482540EFACB4F7B05DB34B7B9D53E7449046C39637C83B3A05632F3AC01E2344025DB7AB96F72A73960BD6FBD8DA752DB9286FC3BA4C035D1B8F2A7587ACC3E0524264A081881D93AF5AC723775CC92A63DC978EECE64170504FBD778D469D9A747834E878C34BC1D7C8A853D6BC00DB60689C0338BF17D3C21633516D8!
EEA890E2931AC444486392720C87993F8AA7CDA9068FAC1F1175415A6F2354D938F58C
5300CB087D9026E62CE9AF16A41625F7A00142F6CE0CC6A36C17F2DCE3EF0360C0CBD3A27D98898BA679C16478958DF23037AE143B48174797A082664DDD4123D8C0BA243465774F5534139DF7F8A6E2E2B490A72A64B14310B7FFEEED63D9EFAC5606D8D30071867B3B5DAA164FA9124D24CAFC174EF40C1039621089C62196C80AA51D29A9D23014102A88F08B257ABB426D8B1F12893E0C7EB5CE8AB1096374F47950C4207FF6F3C9AFDE52F7F3CAB14E6BC86956F7233D0C1CEA033E8740651F85DA8845C2BE73037DEEA225F9BFAC04EB01B5A2D945FCDF32C70B5361ED11483C3A6345BFFE62FCF9CDB71A84DC22D967CB79C4A1FFB2E88DA1520F3A202D2A66E2306B859F71B8C89F8C1B8327A874BD9D13B316C81D58D5EFE9052FED0B0A50D69F680E6E6EF7949E19DDE68D47A4F9FF076F0205F4F5DCB93AF267669AB9EFCFAD75309A17A32FD756B02CF28358F702CC2066504164A404B120F11FB502A5FD8BB58F47960B7F18B37BA01236A0EF234B31DE0B229C056404A299267042981BA150540B4517C1007E561C4D9F571B1B8D070B97AF593EFBFFFBBABFFE7D5D3005A2E9D0CECB2D0C78170E1EE0833C7CC5D2B5D90A7AAFC486BE9C0DE74878BB6E502454AAE0F03904218404D9D15497756CEE746E56103ABD95077B1A1A0A4A2EAA5592ABEEE491BD2C1!
35F6BC4677FEDB4683C73FF979EB8277684DA89AF912DA238C0C3B61AEE761813A4FD8C237C8FF0DAB8FD7F05501A41B9324E2C705D0392449A4704C4D6293DBA2262A1E51E825232CF04D5C88C94E4D55F8D50F28A64F2D52BB420354825A8C359CF21EC45EAE4B0D1E8AAF426C5E4C5606501CDE41C923C97B7EC8433152C4041B1BF5D4C32163CF790716DC19D45EBF1A7FFDEDD36F5F7CFBE2C5F517D7BF7C0C3B48487C60ADDBD7E33010407C45E20229D211696C947250C287923EC81EE2E580F790771FDBD1366F97F01F86663E5853F8001E14E14605336F865BA003491E3BA7A6E62F0EFF55F3A521F5692ABDD9DAC17D832183275905AD33166A9288AAE79D42E1AE00EBC3001E0AA8F2032EBBDAA1853351D82876A43D2311ED8366F3F35F1DB1880D7325621B58927B8A79CB6F396758927542563B226B7F4FBD4140289BFB9B0DC151F02E52672250D07C3F2CAF8E8078D601A9086FD8C85523A0C4C6C3572FBF41E4E599BC1AE4329F8A681D4AB27044E054D2C0822BC84B3A6A03C903F756AE6B8F6DBFAFF67C5A279074945808B7A0D3D861D0F8A9D49680558A4B27358DA963DB4592D07BC0CD6CC1EB38906F99A49751841ADB08ACB8A04CB4F3A76738707DEBAD9F3DFEFAE99FFDD9CF5E5CFFF8CC336E4CF4A48825906C1FE48D18AF0144F327A3FC69ED!
D3EADCE96F03E0D7791C4EFB091EDAC23B180EC21254CA444AD25996F04C6AE0D708DB
703FBF0C78A4EA4BE00583EE32587C7FEBAC8D9E4FBEFFB47B229172DF754BEEFD83D2216E7FDABE53985314C129946607CB433C650BE9F4D8DB8A382592AF8573C2A8113549A897EF5BD8F60D50F551F98357CDA3A30F9AF861331290912E43C868ECBC31D506F51AACB5FCCD1A050C87A107DA1158471A6A561702AA31D0A98105044FFC716A8650C29FE98DBEFC7E53FF289786B54A486CEBA0C9C843D758BD2C8D6DD274F754184918D9D3B2803E633E133EB9CE14B973682D06E9827D9783AA566C555F29F71158EDE91810D77E2205D1A885A82F2DD3EA6FECC318EBAFA960D64AE8EAE7243DCA0C492C15B0911DC192EC8544D19F9C39F3B3173FF9D39F3CDDD8DFDF11CC9FA8C796D45B34D9E3110808ECC6D8DA2B7EE1298847A39220A0D03837728287F05A4DF718443CD2B5C1FA1B4F161D39E48751B8D8A7AAABFC5295CF9056C151C341626424665CA2A1D871EF63FB319300BA7F70BF74BF542AD5A2656D117A4C3DD05D71DCB5C9855A3A8AE712E65E510F78167AB503390D3DC69186BF1B79B139FAA06C69D637248A241BDD40A7CF4C74F406CB68F5A211D5C979B01DA41C5E8758209EEBD2E05E0DD1D6E1757FEE8035DC1C0E79F08A2CB527B587AF6FEEF1167F731EFB4DCBAAEEE64AD55200E75688950721C632B9C00A50B1169AC0041C4BF1CC0210094!
B2DCC8DF219939F9BDB797E4EEA56CF1A6346B347B3BEE3C8A30BD0E5A043B2C2420C567A1A01F01446E371466086BDBB03024A058A3154C1E55A02D4A2F792F7925F3B740A7AA7F5CFF21BF465ADDE4499FC00CF04927010D0AB37BBF242E233F99C1CC1454A08ED75B94CD9568722F6B89C7924DC91608F46C633AFED80F76B1150CA249318D978F26CE3DCB90D048B23A1B5ACDE2F61CFA1E14305A2B57F810C238268EA3C79E6BAE01415A056D6730ED6A617A4539B179C34250E89F40C9D173E8DC8B313679C62F8E60349431F1CE147B92C3FBF3962B441A11089F81B90DBE625CD32BC2582687A1E575AED9A9BDE7C4F23C7F221C366980B3920A886B042882BA3398FFE1B9BF483F047EBBB05DFCFFB3585DEAA0222AF75796598829BB3BBB3BE631F84783CEEA3BD292855B41E024B48967FA827A81214ECB3B49532569A3C3F8645188674B9F5FD956DA2CA5A51C6931F67E1AE0E60529A02EABEC590F59F22CB155A6893F0A0A20B7BEF231F669BB8727C8F47B02D6EB2ECCC51558A6C2AE549220F5C25BDE8DC3061B7073579C4046EFB51B6223219E51F4481240CB0A50D8C0DD9797A4667F99069609C898BED584649B30CE47A9E635F599EDCBF5F42F8DC9F414AEFA7FF82184204953E3C98A6076BF7DD783E97AEB752C926A535F7DAD47547F2BB34FD4E4D0!
AA80F1E5AE7A0E6C25EFCE078E2E8CE1D09A0A3E6AB0FD09D7D7084F2851FECF9898BA
4B8F13792A2F07B1429BD8AA5B6195E1986968C2F6F53C0035B592B1BC302A6050F51F52B5AF4797B214F00CA9D7013B7DA38DF564DEA5CAC9F5A46769C8D331F7840F8DD950F6F87CD9B3C6E908F866F19AE4DD1D9A0F4602300690560D09CAC8F210C9EC7367E607CEC59010E6B11FB4707B3C6EAD4F83406822A438BB7F5BE95474BA1BE10E476A192325A7C236EF2F58B88EB90BA6A3D68D9C587FE9C3E308C4DEEFA93D30133D1390644890D8748A0CDC3C176A0109EE0DA32DE546FDD5474EFEAF3B0399FC042732012A89C654E29936266A28517C9A31DD4CC62515B5E81E27556D2242429A8A42FF72FDE3F58D6AA55E28579C13D70B3D2C1DAE4B8DAAF8CEE8EB224DD0A536763D7490256B588F9877457ACC28A9DD0DC8DFFF69520A15F010E4920958FF4F0357F21711F6F3BEAE87FA85088A1D334446DD5A1E69AA685DB78DD9340F286EA0AAA7A357936E2590701FCA697EBCCC81BF6BC2157FB0D1D5A7365125BD56C9F334CDFBA6207507CB26CD2E8E1C3C0E9F7C60730BC14107BE6CC374F9F3E7EF7E9B383B1FB17BD7C087C7A084B569CAE1672148555BAAF1B8E4059199A2BEC1164A03C9084CD545D7BA85602C1A944693E860DA3D25450E1DE4BD4085D3EF13B6E0BE34E9047105B46DD24AD7B8CF12D2911452BD226921169904DC3871E888EF2D4A871!
F058B702279A495393DF87EB576C25E1040F4188AA064F55A8954B14919516C92BB574599D3A8E40A383FB9080750F2E1E1C082C826A9EA0A8DA21944B0B591FC96AEDE2B29639FD11F05156DCD2AB733D9AD07BC248BBB4A8D10EBBE6EEE7CD0F0444DF917E1EA09AE9E606664547B6EDCF5B7EB668C844E51B4845BF5280D4B1027D1A3878ABFC0AC1D6BC185A827FD3EA1E49DE196A3706553F6F681114E440E8439B4336E5EA734F6B542384EC6D0EA28D1DD3E091487A970F9E7EFB78FF60FC5F05C23E7E81B6E8CC75080DBD78FAF4C5B7FB9CC7E8824FFB2E2948A45046018CED8C555820B0503D233B1707F10D8BFBC4AC9849CC035C698014195898751A8D7632CE333335B2C63C3C6E996DDCD4075CE7C3BA46D78CD669C2B7212480B9261171C8F205E6632270B885CA4C0DAC60FBD0A3412AF3557C2AF167EF7BA93B890EC13DC8A0534E42E3E2301A2C30D38E8098A265A9EA4C46A54A86951995F833886297F0FFF1614DFEEE74E4A0BB97005B3B383F71DDFE688E9D32CA99C0228A02A096453A97611421471809A0579FFFEE7FFCEED507122DD2A49D5E0FD9E0C9E94665FD1136CBA85C78B9213F4020415EDAB41103F664D3DB83B8D1AA3DD3263E0C7F851C845BD7A162EC46987775363DD9CEAD7BEAC3DA08BDD55C1BA71F99135B4A734079F1DD17679E!
BEB8FEF88BC73FFBE6CBC7FB1BEFEE6F7C7DFDC5E3FDFFEBF153F9EFCB6F1F8F1355E1
D0E76FA2E67589F65E8AB995628A5502F4A79255CEEA787A929DD31375C1959B21E99E175145352FF954038F52125CB1F18AC55A154794EB330FC146B2A25691E6135D52D831A21249246151464642ED61DA2FE0FC5189C60A9D808972BF6B656607FE4A7606EF908EF71DB72A4925308751103D0CA8FE423598B4D6BE2249472A970B3688D39B4C1C891696B68D9FA683E0F03F5D08E7D07428549D9352E9E4D309EE3B2240BD2231119B7C0A0834542388F40E793D3252C27ED3FCCD50B1F5D1AF5E69EA59054E93CE8CE1EAB7A1C09832C2A87C83B9869908AA300A9EB5C029666AB275D7D4630BDA10F318222295B01932090D57FAC3F2DADCCF35F4BAF6C45095FCAD729A3EC678B623185A8FCE3CBD7EE6E9CE57E3FDC7FBFBEFFFC5C6FE573BFB1B5F6C483D93B4F47427D95655221DE4E590C72AF1DB4BAFC0E6340B96345FE5B7B3B9D6399093EE5F8C8D04B539F3F26CE4591DADDC4D28B5AA13AD96B71D175ABD9DA71B23F452F51C00F3322D4D029CB4FADBDBC79EA18DBB4F26A4844B5018BBB813C26028DA265F17EF628C34EE31928BD5E7C3AC08E9AC866156EA4C1CF04350BE0EF1DFB1211701DAFAA6582BDD9F4878B87D49367D28334A9B4674B4560ACCCBC3DA477E379666348DAF944E4AC7B56ABAF44392E206BEAE9F70ABE8075D36657AF1A32DBF011!
4C20A56301152D1D10D5C7A68140DFDBBBBEB3FDEBDBBC751A3F2F6B99755A5F9A15A3AD9AE9DC52CD4C4C47E1E94E9BBF1FC0DB123CD48908855733E8F57AFFC6C7BFE50A96AA05D5AE6A3E97A56A1D16E41288CE4A41CC59169EB5466889777C7E327DF3E8579C88BEB4FF79FFCBB194C9F1CB6FB7E5DCD1BD4F1C71981B8BC42442BCF2CCBABB7EE32417E651BD8156CAE0941F9F65316819E241A9F675891E6AA40AF6B6DA4DADF40A159DA479D14F213E7B40EB07FD37A6054FE3801BFDA8021E48C377C0E1E3979AE93E1444963E3BBE3119B7CCDA1FAA1DB0FE1EFB60D6A7FECBA1247C912A81A90C8E2A1C5220A8BC1B4AA5068765FC0336486051441AEBA74655A9DB86B07D894B9637772E5A454BDB04C71CA229F26A94A568E80AABDD5CD1840357FEA14C33835C3DF7CFEF9ABDF7CFEDF5E49259354C4291188453AB91EEE95FF883E4BD89CAF52870AAD1138373A76F8681113B5432C66F2ECE644151B2030EC4BFBB6871F5448F3AC521A0921FE288335168D3D410188C90AE8D2ADD8CF058B826065DCE129C30677A669AFC0BB093EECDB7E3D1C782952112F63635DDBEA4151A24326E2DB586FFD82DC5856338EFE26647DD2025630D4C74DFD5CE44DC9B79A8472DE253EDECA0FD9708CC2806A01B41DA5255A2CED79AF32EBA576569A701EA43D9AA4946D8!
93979C03AF568802E7F9B6C72E841E84A0CAF600B190C3A21C6D602D80FB715B54B4F3
A6925C79273962DF760E3D9869B5575F9AA71D4F9543AFEC9C94F21737E70FFFE7DE89DDF5FFBE9DADAC9DB88ACB5D2D41394E864AEB37CFBE04AAD27850DCF3E29F16500B945A733C026B458C4C1217CBEC8D46F4B413347C83EAFE6FF63F81B0EAC25293186B8CAD7B1757355CBCA0AA0315A94562A7C630B4294DDE12BA10E23C3A6BE39DC6C48AE82E68784D0DEDEDE5CBA482FCCDBFE954187B74715D9387671B92A4DC1088FFBBC1B2A78F12D19B1CBA0898D7D28E59B1F3E7C085A6C580F5AE32CF160DA41D310830B8C04DA193410875D948AA2E517DC513E3B53660AB16EA4C1436634170D9E9F9B89D0752175A88525C8218EF269C3A98C777E5A69DD47481E0D95BA019B64DE5FE80A2AB4B2EC544C9347291C08EC7818811094F5AA50F7930CCA2A0550846C17B12F345E587CA88A47ECEF3F321C75D7797D924CFF198BB7D481F87D964A354A251579D17365EC2F82E5879287AE947EFA57124788A49FAEFD5442E8C39393830F1D73B8AC3A5E8C23B46AE964F2F6852506DD9EBF34616AB60661883D7A085CA455ACDD864D70C4B3E5C8FC466AD507C3BFFDFCE8541C44278BF91D3503EACEEA1E04F257653B8E960454D6705140DDB1416513D269F7CE5F8679E65A29D4E29C44C21165CCDA79C47335F530148D89A16414E4B36B7D3B0F8F40A7302A16C3C90F!
047EEAF05B90F2B282BF29CB20AF6B707CEDF40A08A2D4E432216AAA40A818712DA496D62BB0130438BD8CEC7D9D7C2EB712FB14A29026262D405A84BB99D80A9E68D13316265395533EAF6F3FDDA69588241541F57D122423C92DBEB371E6DFEECF324CA2A2C8576A37E543D9BF2B490DFCA1304A1C34A0B8C492FF1FEF3FDBFF62BCF178A7A7A77D749949279923CF9BA5C2E92858440B66227F8131D1C9E4647972F1E25F217CF063EDBEC09F8352696996B5C30B11B9F2E9DB1F96AAC782BB0B2648CDF1609A76242952A4078DC2A98C10B5A8A2B0E19B1B92712403DD0137ED03A5A6598D99370A99D4AA2EAE1BF349507E938F6029A34BCBB34F3E0D6A3657AB8E610E8436997E58BCA4411B523216A36A2CFC62BD47C36223B02769861769F65843296A5D65D57AF94295E9827E2EE8A4FC6D18D7E113C53A0A02E2598D53FCFCE848CF8D122B5F14E631A381A4E2A5567C4945F1560B183F2EC85790530E9AB034D2435D320E1AA7A66A44B282825B1C142F421062AC7164A05E03263FA82E805CDF4A8216B4CDB0DB250D8A318340B497B276C890383B2FDE4200BDF8F2E9FEC1B36730FC9CE0F531E4DBFB6E5F706012D4FCE0D85BA6F27418805C2D5FC9734651E7F8647A72524DE36E35BB4F387DF14042A80A94940D6AC1F162510CF00C45875FFB7F963CCB3587!
5E3435036F10A22C423A83786811461A48EDB6BCB5615E1DFDE637AF5E0D8F3E6035E3
F6C3465293CE9EE8CE1ABF9BCF714734D4D9901551D330B232C5769818E6BB7B5DCACAAB37D8BCB1963125E99F4A0BBCB9A720681EE3F4721759879E9379934FFD330D9DB9C95DA982BC8204A11FEBC0476D1824272114E3403FA41BCFCD9C9C38DB4CE7D7A22AC6E7E95586CAA6879CF5680C04615EE594F996C616FA348CDF38753452F20297C4AAEADD8D61B42D712FCFFFC36D4129C140AAD376440E95C7BBB9952FA9766F9CA6131C1BC71FA860FA4AAD4149681E2743BE2ABAD74D6BF6CBEBD7CF5CFF561A892F0E2EF7BEEA5DEE7DF1EEC6E359CFE9F72FFB2DCD442C7DD0E2841A08468D86447DC144D1D64975293D59C9594EE0B4078C0D8B85AC74E016B76AC712709D0E6EED4B17D74AC71760C3EE2753130DAA12D2AC649DEF068301AE581902E4289215E4A13BD3CDC70D76F747CDF21B8988D54CC036176A7A5F2D7173A3ACB54BC745E522A0743EC10E3735829ACDCDEEDCEA30CED9BE873A66B4A4913D79086C14498C6104548020AD3FB4DBF55C4378E583AD4A68BED7B669D546059D160BD0ADF04F17175663D65619EAC86A7650FA342F693D2AC6923199D8C10FEDFB34317108C3F9D1BFDEE5E9D7D63D15380AC34067A4F603B675A82365EA38B2F743BECD6A2AD11CE4F46CBE7FCDB43213D6385708B60FE52BC56790CA45C158E5052933C418DC4039D!
356AB35E9B77A93899AEAD5CD6463DF4D7B7A415D83CA3404CAA5961DE2D8832EADCF236F21CF0FF7C4481B564AE9BD87694015D3C6FB07E6BB97D0A40E1645792E38EEFD8B272F6B299E3FFE32898A5529AC612088A8D3690F3A383E84B610B9618D7607D660463A7A5BB48ECA790C317458915624B55C26243CEA344F37ADCDD761D31F550AA302B7150A909899E8F943F6BDFC32D702C7162D1EED562AF1EAA10E7D869A4068296E784E3B4E226834E0E21888A0AB8AD81C92F2B828D24A43B1578887221921E540B126F0DA5EEE076DB470A4FDF527EBAE93B7EA7CF42C9682E49EF3E4CCC72FC629AE1B0721BDD2F4EC59B9A09155E1B7E63011C5C1EC5522EEE1E459BF3A3ED055091D1924B9F414B7E9BD1C4775030AA20EA248A74BA4B34A648C9CA534F6981971306802F4E54190E27C76A1FB599D5AE57D96E0B4815E45F25ABF474DA2546D37F0F11C567BDADA2300A1F1EEA44B27EB2EA7F7917B0A8E81E39D9361DA2879A8549D46036F2909BDB8E5658E64A9FBD36367D492C7C6384EB1388906834531FAAE43B5FBA2845213E12471843E1FB255460D849B47F6853927FC23DDABD30E9FD1D41EB6A166A4E27AB8E948E792239A6DCE9FBB7E065D4F0414807B79EBC8BA3874E5679C9D551AC4260DEFF48C3F50C534CBD68FB64D6FB6B333DBDF98F553E970F!
1E883B7D25095F5066E94A545320568E8637014237C600102A8D1F55653406611963F0
29F4168C9EBD1A6154BD4BB8DD0864D600AFDDD2C4E8DE538FB9C0493B6CC69AD2D73914D933E75817C12318D693923B717BF3142CA354723DD6F04F907473A4180441D10760A3A1DFE2C5A7422DD5E449815F9E42DA63595FB0DECB25F03CA120B90389DAC9241F705E40F7E397910A1190B17791C01620BC8DFEA44D5924069D79DA45877649283888AAA5509C96031888A778A7E26A9A9543BEF383D5F3EFFC4DC2A5607F2D168EDD1A17DC7C30D1D1635075093EEB4238345C76B0C895E0FD503D6B21BFF289086B9601144D0868DF0751B6F6A0F259620715D6C874DF8320A7A89779D392E64BD391816F24B1B328F826FF887F36E638E8D7C9C1FAE513D6CDEB50C59A01F3FDDBDFEF1F5734FF737C68ED9CEC77D41B76B70E307BCC357084820F420AD11DB361EB1757DA3B360BB4F920FC4A5AC4F8B18468E253C067ADE240F4A7F94B28CF12C4DD7BB9CEFE472B3D60434CC03683598366AC08E7CB5C954830F5188656D25234D67DB9AFF548DFA4D271B4EC76DF1331B1B2E500CD584E4617F8EC61EB61968E6C031CB0329B4ED6360773911951491A49E333B45FAB2E03F9F09335A0C20641EDD5904272730A15A3B38A99EC0B9FA2232D3F2649232D44CE64B9CF9E987A56BFF1D07FDBE93A5B54EF3C2641079C6F57145AD220E928D8AC5667B0085AA0EF88D46E2!
E6E8D5F035F291FC7474E3751E373607A1BB1A4A10F035C1C77BCC40C3062F4140B26E370856A038449D628887349AF2B7E037102B6EE064443E5CB38F5FC82AA3D8EA50633F3F8F5547BFA1868C46AFAE139E7FC9AF60F0C3290B1E1E9479947822FF3A50AAA3D6339844482E22C55A9FDB7A1915F9F631DD44EE28E064A6528134420F268890A4D146D0E4DAE7F95ACBB355471F7F0D2D0E9A739EFE2214A4C9A56484E9C92097AAD510930088C0041CE8DB027BD1A91B08B0EB23FD3B70B1911A2A201210475AB40411470C2764A4E8B9BEFDB94EB2229D47488D614565F1931E70C177A167429EBB9EF323AD7C79342846FE49E9FE8717C1FC909E0C43A3C949D5915F9683C5C0934FD06C978B5B9F94AE5C58F69C5E1CA42D73BCB5B538D91A140759DFE009222883E2662C6BCD816624CFFC6EEFD5EBE12BC9429FCBCFAFD19095B1F8385AC9ED85AF30CAF91C254CDAF2BDDFEEEDED79BFF57E8B72D69DCF55D83EA6CA87649B00B5251660BF67EC84593BE0AE37E73D6C77AEABF9389DDBF35834F5B153D0ED18390EA91FBB3BBB2E34BE0B5501CD80CDB15F71B47EF17DBACAC5C61E1946187066E8023D092E041519881C3DA9CD2C4AFFB236629E5DB9E2F312CFA4D9CEA31F9F7B3A93C409441D58F0A42DFF364B61C4485CFD601831DCC2D3DCA2718651835D4930!
5F307FD92DBB4EA6723A876779AD8C9E85961D3EFAF2C0030E7B8C217DB3A7AFA8A946
E0AD5800F8B749FA321030F2D434413EE8B9EE5CB9EC103413E9EA235894DBB56A75E292C8385956ABD3292C144BF72F4E3A5AFB062F5F6EDDFAECCAC54F5E62EA24DF996930D8EA04C7B7FCA893B604104832EA14CBC5A2A41FC80A0F78B52100D8DC9DCF7F0BEBCEA6AE5E8FDEE0121DE18AC8B2F78761BEE0079A1ABE0E8752FF1A7B2861AA63AD14A0AE17FB2A5C04B86C105173B0F731F897477D9ECBDE170AA3DD47E71EB92C50E0643249C5529E0AEECEC6971F7FFC384D92DEECC98F1FFB7CEF94033D80A7AEDD6A81A3095500DF426F2442A5B9E0DB0BC491E8725ED723F28D46C61B74067604A4F40FDFB27354F5C1E41AEAD11B85C75A2878F650C8A6244F2F2ABC20E40DC460F05D67C14CE1AF381EBAC8C813D16A0FC70CB44A451EAA1756A63A1B04FD870D3A782178E8D33C93E42F5AA1EC240B724DF2995107AB292A5EE449D82C50C1F84E8B4508B8C5A4351874A2256E5E1DF0AC975227276CCD3E2CD53AF28145F9C4C7573FFBE493932B9F1DA70507E262B541716B50DB2A4AA2925E4D00D0C2DB44224249E3E2ACCD254568E6F3CF250729B8C65C88EC585E77D8130F494A7F848FF2F7B120A91D16CB00CF542886866C9B53A4A3AD0E3D3E3C7B2A0BE9B30662C97876824850EEFB4DEAC57A5EAA420F316635F2C87794CD8A42E5A72377D7E56596042!
CF18FC021A4A380D36D8FF1DBD0AA4AE50C94870235D3825CE451A2281B8DFA4E622FF55577062AF996846D14066B59A32C95BD28B57BF9E0F4D1F77C3FEFD1E441C4298FBABDB35FF3F930D3D63ACAE3497391CD1F76281EF924AD628A23012EB0C65BE267812FF4D0080063106078C07D85C8D2AAAF2A2D3F1C71C2D2A7CE3F0B661D1B749C892B8E025833CFBD5AB75C73DC2C9BA027CBA6CC420717A59805A144897CECCB4FAE9EBF70F5B35B5B01CABCA4F20B83EF6E2D6A5BD2257AA9E3635084E9AA7CE779BB8818EA90ED2398E835605119AD19A323CC51349B79ACED87C3E69176FD2030364262A27663D86614C96BF2E8CEBD95CB260D1AA4515315BEB64A3A36694C2E1F87879C3AFB9C034841F5E91A9E52144D6A1E365CD2085B275064129E1A35D9CEA3A702826F4056C0D71424FF4BEF1F416AA06B896352247A4803B03AC1C25F5AF91608DAC8358ABA437B4CAE24779631CFE73DA146C7B67DD4A9F9BD1DF8791DB32340DD8CE1F30C6C17167159CBA483BFC59292733CC5CFCFD9C4365B7CC1DA6180B508C415B56AA55C9105114A9204BC23204B1E5740150C0A23FE3A90170137D86249144114D3A3CD8FB7E868EAE1A2437B3AFC8E85CD4F99781C79BEFCA119D596B0D19397C9B4541278B4565AD6F0FD8EA43A2DFEEEEA272FB7B6CEBE146CE9CB77E!
870711CDEF46A1DA074A438B4F8DF159BB46CE91019A1AC2188386A943C54661CB1A5E
719B5373C15213EEAE44A334D41C9AF9BE1EBB08139D26BC9325DBAD7850DA994B895ED72B30B3DEB95280DA5681A5D6B80A79B0B548F94DA7B46A98B3E41359CA77C158AD2B5531831C7D0A60F16B0568A841A220D6C48424E8E51509192104CF96098CCD3187EAC3C02F2F416C8D323FD28F0F3C98FAFD6F66072FB14CC54DB84905B2B2F67D6069C14A843B2D240745FEB0F14DC2CA0EFC2F7225F5F611054342C0E62CC21C4E2561246316A0FF5711691A72D78C4A62C18F8D102473F929EAABE0401120DC6450CA2C8EE1E1621B77C3A34E05643EAD682452B22C086FD22B1363E846328FCE5A6D9942765D5E1C05A70D1FDFB172F7EB8AC559366117FB777FEFC67C7D59BB76E7D5633541AC6E5C8CBE9E1161013BAD4050840AA3214046A24166EC2E3C5EC7D2E7906250A70280F235854317674258B37859426469642023A82F6832D6C70EE28966113C3E1419B0A8F342382483AEA51178CD906CD7EAD2BB59E26364E6DAF3418437B2464A1299ED6B903040EC021AB64BA11070234AA965C1334DAD894837121105B334DE4E556E7F0DE8DC9C520AB35C80538681C9D50B8CFD04E7863637FDD6D211F391BE75E7C73FD2F678F769CC464FBB38A23E8441248E23E3AF778E68CFA6EC549728C9C775D8C392F584DA96C936F3134A24D074C6144831593E40C2576678A!
9C1126C6174C23FFF06A3C733C0C7D6AB8456462B18C0EC91A5E18DA2E4D42891028022EB20B0F9FF3819C3A6981145A3B295247510D834604D1FD0F4F1049E9F24AB536F8EC4AEDF8D36B6F5F3B7CD9397BEFD6D6B1C047A4C49A7FB838B9B015C13C4BBEF60E0645A102A290D89AE988E50C83465C9DE197A3266A19B920C0D550D5F7F770B9315420A44A0F476576F0F415A20A68DB5E10F1BC1A06C26D9E81B07275C024924E8EB21F5D3FD77BF4797DDACD7DCB8C1595C9770276F3117112AD4A8FB62753EB728E1FF187E4F563A019A85A92152AC4A3866717776266B43BDBD8E565103651FA20DBA9A1A6AED0B7C36CD3DBDDDFD8CD609A924151A1C08C92F6B25C4F7B75C3A6BE0F51607B7FCC24BCD578C8CB83876F440E8B56A374D2D7227DAE2431141670E66CC7CC8348F19B13690FBFE0E44B8B932404412F12410270F398B45A5698275966B5F464923A168D9A8E08827C760D18D56ED7E2B40A37FBB50F0F4A57AEA4CBDAF2DAB50B2FAF5DF9F0FCD56BFFC74573EBE6ADB3B73EBB60A4E35A1A33358787930B0B748A66C15163B988215187CB0F8E8B8AA83BE6E8CE1FEE4858DC397A132E973B65DD54C04C0F1948FF90B4B323641AFC5E92CEB061BD87AC22BEAAA859BB7B3A4703C17869C541E6E92A1E82E1A67D07CF7ABB4ADB95AB67859CAF34C9E7D5!
144A0F905C57ABC1665E0215A113698963831FA2E16FD85B0DDB6EF97404D7E64A753B
05084B2CF4668F367A982879CA3035BEAEEA68F080A3E350D38A29983097B2314A300B2CEDC8B710D95330A4B1C92A47AD690C0AFD5C28CB0FECA891638330C7D6DBBA52D1317460278D88889A6427C91B5290E0281671DA23658A2987A3A78761943B67E6692AB04346EE5C594DC13E5A2CEC9B05923F97EA26C165967E352B5DBC7850C285C77259BB76EDFCCBEFCFFFF987E73F79FBCAD9DBF76EDDBA5A7C89AD190C83A3A8F6F6310600882000A2EFF29D69D1720E75D8285DD9E7F1DDBB71BEF7B01D18D8D5B4622C97FFF80EB6AD3FDA451B74A19E1F79E8DD29D7EF116F35AC2F5137F4E78DC6DC0FBBBC2443EF2F107A5430EA2C4C66A9EAAFA9B6150CD3A03E8348C30C1A5D3B0A99BDDC6DA82CA87E04C2091306B8E6F9B9591581A96F318912C4D456C3A4D07294422668BB9F1552CBDA08BD74FCC835762166D7BE16D4509D828F94A5C3DA07EEB47C0536FF583264A4570196F5E19FB686BE4E8F6DFAC01AD83EB85A71A8AC884D056F337430348896A97CFD18F6B0695F401E11D0473251A8F90EF34DC1C318070DD8D7F33D75E81DE5A36B465870ECA334B6E5732FAB84441369F297CBB72F5E395FBBF69F3EF9FEDA9F7FF869F1DEEDB3F76EDE2A5E3DEB551DA78A1032E6E4B0B3B07F2F045E428E18D9DECBAF8BE6427EF20C8BD851F9CEEFF67EFBF9907AC!
482856E28948609E351A8B69E792CC18C0A5E0C4375A2CA7566A4F59E03037BED1C4A779192BA315D11BB9016EEB21885E9A800F92208AE79FCB8DCAB5C5B3B5B091A91FD3F378445CC74BB40CE6CEC8386FA103762DEB11A883D36D441C9CFA9F9466F4D13EB0E9EE8ED101F463E8ACA3CA5726BE85B4D36364C709FA16C36EEFE144113666956C94597ADEE020329A44539C888BA54F12D9A85FA141298ADA1066E311E3F6FA819494389F5C83110D10CBA35942413A48EEB98E7988473DAA3EDD982996810EAC41C9FE5E5426D403CCE851849213352A4B11786BA3E4B41080D07CF252EA627693545553BA97DF81FFEB7F3E7AF5D3BFEE4FC950F6BB7EFDD3B7BFBA620EBB335A73AA557F9B47A72E142E84734A60AD19FA196019371E521C964D196F7D3E69EC048A78D378099A9EA2000690F06C3D2A8A96903DA338991D7EDD7AC647B5E83B60C44CC4D3D24A13C28981B5D9FAAF8DD79586C5A1B58045BA3837C130AE045E65225644B21522BAB483DF68A6AD608010A559F915A15A9405B033ED8E0798030D6450859E959FA60452A32CB5990C13585B4C21D16C795CE9672462CB001654CF7E2B6F8E830D33391A76D1611195463310202DEB44AF9AB59A25D62E59B13EB796D899379F8F876F7C67519258556934BBF66B83F7533A71A5703844B101AC77531687C1!
EE89A63C10819A85DDD20B403031C7D100FA54B8D461B965AE390F21604DB182100287
B77A2C3809631CBB45AADD6CE9FFFABFFF0F6B5F3D7AE9CFFE4D3E2D97BB7EF5DBAF572EBEC67D2E4D7CC34AD0A54ABBE7D7C61C0A75118920D12A9BD5487E62ED0277ADE35C6F666479C2CBE7E756A1503F26A0374C6A106107A7E64259D25498B2F11311CB6D5E79546210DA5A1A1F2A8DB50181E153B748FA1D21A9D88BB547D2D54A4BBE2F0511D3E6C0F867C13690BAF86439E6A944656DCBA81E88C88B33023C02657D7AE736A42F275BD0845FD82F2B05A65E58F353C390369D830DFD45E99032393D83BB4D06628DE519B11E60DBE19CD666E4AAB4DE85EE9515040F94BBB18434B24083EB29D8022EA286FD174F116E52B2FD5CFD775AF1640CE224C9C7DF3F15BDF3811B41D9CCCF899C931B1005B0E821611DD7B1148A1AAE802E9D7B8605B74907930348CB0450907C545945FA868AA93AF5850D6D6E2C2F3DA32F51B917469B597835BD7FEE66FAE5CBB52FBECECD94BF7EE5DBA7DEFB8DA41102DAB907394E03C3939FF59C85BEC01F81FD89DD9E8A14848C3630AE599FD9DB29D452382A448492F85BDD87CDE1DF256430DF542943BAD62962ED2E66E15D8AA51D471A27585A5271155D6B4ED576BCD8632026328AC2396469551C13A93A73A3C6AAC2CCD435BCB7C759EEEAECE60BBBA08EBCE7E7CEE5181468C2A87A5F60E7ED0E5B33468A83960A4C52B0A7D!
BA76859DB80FC12D85CFCC3B0C1DF973BC8B3DDDF0732111CA76904562F807696142EF0565F5AF3847F2D906A87FCE93A71BFEEAEC087F1E0E9416A2FED388A3CEE62294465E31BAAF07D5C638A327E79ECC1C892579DB089C8E50C74A88738EA4F37D8C2F1F3EDEC8F4D256BEF4C5A0A80B325DB0814892BA4FCE9D1B710D62628E1E6D2F19785BC72F8F9720AA2181155FDEBB54FCF3BFF9F7578A672FDDFACF1242B77F713B340B69D03E7B399D54ABD3EAA43A39393EF6A161DD64190BB59A46112A8EBA96C9036D9AD64F484D18F6F620EE2919A8D19DC7E9DD14DB7B7D07163364A4D702895E87AF69CDF99AFD1A4D101B3A0EECEAAFBC9F274CB666E824B9E6250733CA98AE21C5726EA0886C82077765C6D720AF0D1D5DC372921A5E4E4342DCC1AB34F6E60A8D7216231A3249AF46BAB5005D5C3BF456FB4AA41C0C6894DBC184C1860CA7C17644B91A5B49F66E6CA25FD461241EBCC0EACA46DC9181F1CA4FA169C4E90B6817CC9EE62490D0BA0D59B733DBDF83709B15B28D59CF497B30FF83A25B908C76CEBDF8E5C6283F62D1711304AB3A8BD00ECE4376F70BBB1B4430922425CD7E0AD7442C3D2C235FDE3B19650E3787D1EA7435D44F7BEBF8F8C2A786B36E7F30D8FAC52F6E5DBB58DABA74A91C1625886E76F08FBC75F6ECD54F9655C143E974F9F69597B5!
9A1ABEF269D716D0D51660248D15C2A759E69CA86C1BB17008A7C5BDE11E4A91649CD7
6D54AE21B88BF4D4FB5754B526961E04D1EDF66A36ADBD1B4F85DA3A3E6AAA309B8483DA352280B409B3794A4F07B07BCB3DD3D586065869B3D1B073518C46198E2B9C8D015419334AC61993A0BAA6B7AD824EC8091478385A5794192431B63908A5CC2945301C84560EC9B71A925DCB532C582E34B6662C51B613C75C53D76A901EA10B8D3D86F43D0B7F38CDB5D04CD728BAEC8898B30A2DE0A780C3F1C83BBD8254955C2B040BE2A2540E79AF8167C929811D0B4180453AED480288D965619C2C3D3D2FCB83E63B155E4037002AE460A06973EBD36A74A14625D1A038ADFD977B176ACFA5AFBF578C8A376FDF6B6315ECDDBA79F6EC27DFD7A6CB6975BA3C397FA1B63C84501ABEB10D65A930BAB50F824F8747E7C5706F48230FDC923558D88A5872B4DB8DA196B9A3BCD449C35FE49FDA76DF460B22A22C9F0E44010C22250140B318309EEF91CF8324BD696AE1A29670A77DEA4CCC49934754646DD075B0C8A3FD862263C2211AD374B10C94A8903FDEE4A840078FD8CF72D55BE071501C78E18A650892AA5685FC99B99A3DF1461B2933545E13256EBA739F9ADCAB8CE2DBFD2C26E1BD8CE411FBA845BC74D4CE9F8BB6C822E928DCCEA55FF8370FF4EFA74A8B974F0438630AF4CA24760C15ABE47D5A78D5533652622CBAA12204224362497E92CC205D7EA463C688738!
28EF4090320F045A465976C32C6F1D6F149F5F802A64F52285F965E6E15B72EDDBC79E9D24D89A1DB451CCA06C75BF76E9EBDFAF2BC994EAF4C4FDEFE5E82E8DA803E6CF25FD75F4466EAF0EC89071F80D8E0B9CFC9A80FD5F86C085259BB2CB1A4D00784D90E0FA8C33FDAE4E7A154D698696BC96CAEAE1635F1B46DA2F175D48C1D5897D85E35906176FD460C35ECB58E0AAF6B1163A6885635ADCB90E29472931E8D6123B2E949F543BC7603FC93CAC68F9F6C54D2B99FDF417336834FEF6B9EB0A21AA7948FAE52E6BA795C31B262351AC3568D6625AB9DAACAACE077D8A0C0EADE1EAC0576DB920476E81E588EA5658E502842377381979B3A47512E1312E111893A037202902A3D3D638A229D38D00F9DC7685E2B4BD9EC45387C247708FD9B67B19E51E771CE2598A0B401DDFABE7A52AD812A29FFC0CF8EABB73018FA83406A29661829A226B66FDD3B7BF6B3E3E57259AB4910BD0C6AD78E03985C63765E83BC5109A76DDE0043A20E5541E8ED61AD5F2D673F949E6B6FD86896EF14F35E4DDF019B90E25151024737FEC034F25F6725C227A58DA3CC763B77AA6EE864B0DD6EE6198B601B798B33CB951A6D6EC467CB59E8A9392C7ECDCDD36D358BA81AC8ECAA8AFE8AE4C395C5B48E94489935790640006CDB3D07A182BA9B84619E90ACD6397892B43F0A2D54A37!
5623E1CD63707C03E2D750612E8EA8CFA3DE3AD286776F06371586045EAF4061247848
14AD66187B9B0676EE4FE046491702D1DF07449878968BC7420A1CDA06E976158BA51E11A46F73BD2BE91051929DBC4334CDBA06EABB14BA464DCB078ED64727292EAF649DAF97B976EDEBA794F5E6EDA89D540E09604D1D5E3EAB47678EDED6B9FD4A687B5DA96A139C422082E1C1F0F06C7D1802B158FB7F99E69DAE320BA2C42D40A1D97C0EB3237A947B9563A848BF494A87854CC2B9920A522D0B1249E625BB34FD36BAC1E742D13F44B6BCA7790BBB626F7B2F25A145AAF079B7AF47BD66C7AAA871EDA4E0D12DD0D1D672ABC66A7BF69BB387925DFE25A019A866253D44B8E1D3673FBD9C892B8D4016DE580651D46FC600EDA1BA111D5FCBD79CAFB7DDC4F87B65BCE3B76E84EFB2B04AD43BFE89456ADA9C586C78A54B0EA3A25230033C3F9015925D4EC81DE5F1E12932594924FF4FDC0D9EE9047175A6E12DDA8511C23BDC596143420BD7A4582C40782CF448E48145AD9604FC5E42506AE9C48323251B829054D12D1BD2DECCB6EDF2CAE3624D14240D1D997D596B46727D76A124CB54F6F05CBA0767C2CE5AE56ABA90B1F8613814A93C37911FB0D1B4AA124A0E251D86D949541D45621EB372E3E70E8B1D79D9B212ACEF0B52EEDAD8F5E835E7C1628497229173B65493A115C82B342971325826A642A05DD61CE4352608D47A0613BB1D03B6DF91B9BB6E85073!
9F57B2BA6B43D6964F9E39BB15C7FA1171B814A094D94F80EF2BB719C6B382684CF7BE55F9B02F693CE7256CC3FEADEAC7E681F5075B49A5A3AA189E4AFD9160675386870735B2DCA45C2B5DE9047A1D6974DD45D2900ECB23BD58B335AC10F0040E9F3BD491A26533B49CAC00B24A4EFC0815E6631BD87302BD5D0A6A4C810B96B341473FDC630EB20BBBD5295FF1D3E59565B5EA381C7C05B725139DBD79F6F6ED8EC41F090498756F49647D56CD9CEADB57CE9F54A7D3DA85ADDA325D9AE07071E165F1E585E3C131A9018067D603361CBE71257454BEF307308A8A366F34DF5CCCA24B6B2386F61AD2C5E9A891178CF03D6772CA8150B3D8A67A3A5AB036D7F9B46FCCF1B33521EEE42DDC824E589E2498C8B796D604BA74366F587D492B7B95972CEBB0B732D9A3ED08162F9C2ACD0B71EE84E5B760B20C62916FED0DAC5136D55D102CB8E39EE37AC41E2AC65DCF26C446E4EBF3395AF5DE76B12AAD752B20979B4983EF12E4445AC5CFB659C21A9F91152E94D248713F464268479008A648FDF5EC6235F031D6C73BD3A31B9F2F0C1FAA96B4EE4C106E0BF937D4F8FECFB96C0D818C22EBDF1C8579B18E00C00718750FB63E9510C24BBAC4D0BA78FBF6ED4BB72E6C75500E3923C0926570EFD6D5B38BB47AE5E4DA3579D765ED65B716D4D2D2C66CED09CE66935AB4D8!
CE29B828673AFC812607935147C0C4DC344EFB79A971D2BDC99FDADBA1E6EBD3CE0CE1
D568B7ED412DFA3D72B7818721048AB7143BC04C1D651B35B582110C75DAB98D1A43643357B6524E910E2BF1CD2836F362E645A7DAFB2AC98F615498ABCC527DA66B9DD41BF65D1A5E0CE98511149F733918A83AA871A35E1115E42586660C4DB438DFF4980EF5B3B14B56E40B8B381ECE68366034112DB75453DA3F75B9C28452C541B88DC3213D5DED259365BB592B6624995353AC8167F1D940339BC49D641A9F3C249A78ACB095D2ABF574D2CB4F841620B38159C680C6CB20D7C05FD8992ABE6E0922294C5309A129EE179769ABB3553CAE5EA96DE9C70C16D2DA49B377F366F1EC9614AE6B9F4AE9ABD61683495A5B1A5375CF41CEF087B36A92061AAB789C3CE3B198F1FEB5B987B3F891338AA59A49A2B0FD5753426C78F4C678A8583E2AE62D5A532744EDF640F7F98A956C3A9286BD6B00531A21DB6F1D1E691459AE59DB068F6717F9F81FC18D5AA2F1087F67DCC4DB4B35CF3AD3E818B1B19A23F98591E3DB2C6795D91A764EA7A224F63A429AAD74347B74AE5F50CCDDD0A64E6332E4B536A158DB8ADA28B50CBEF63A700BECA94FC465806EF89DDD474FB282B19C6C4D57AABF06BD09EED5228FC7DA714B275688E5743CEB9113A7FE5EBAAF552CC54D1FE86B11C310AFD518914C661C2C45F9D41CDBF9C0230F4DBE1E3FC77F845EDADB452A2B88FB5B4932C5D!
A729A6A3672264EB576E5E4ED2B578A9DFF8FAAABE76D1CBBA26CD4B110220F04042C1750B550BDD30EA6509FC295C1CE81AB459C3F9172E1EDB240D2F0E3812BD224C159722D600ABB588DAB40C8040966A610B0B177A689A03F907BCEBD8F9E918D1919A2249BBCBA9FE79CABF3DB24AB250626E10FDF5F5E2ECECF5F1CB6DBF8CD5598052EDACCB3FDFE31B8FA40C04AE0ECCCF655BD0A660FD5C8F0A8AADF384AFB543DD48C44F0377979B7DB0D5F0042EAA77FF4B8566B2D781F32B525D12E257E85E21F1026CAF641C7AADE8672DF83B44BF6D42832F37B62A2D95ACFA7964EF28475B427D4955F7D94EB5D3CAFA414499A14E04B8D85BCC99B0185C6AB1D147E13A4F229D322F1C8CB54B73F64E3F37E34BF913CB1459053223405D79B6B15930CBC7E8489BAF2F5325D4704DF83C90666A1EB944414EEAF562040A6B003767C720F55B2C99B955C066AE36B299EDBB1C184712A74864138B26999D682097F1FDF83240FEEF27401138AE46B7B9C1FDE2D8EC79363BC087B424E8C48177E2B36745CFCF99DC4B2C75F4F7BC99E34EF96A8F7DFF005C2237B4F5CCFD1D6814F85084203427686127E369A894119679F9B9018C227C98EB89D7A8606A364D3210C4977C854B57118992BD70F2D919466645A919164D481EE082CD958DFAB75E418DA8695CEF8BB910150F97!
0E89BDC4CD07D8EE5D0A2F2EAB3035BDE142059396573786A7DBBD70A4BDB3A24BE299
F6D72FFD5F3FBC9B873EB69863752C7BC3B63F3BA21A49AD7DE48D9CE274D9E62026012C4CB03950355319C9EBDC5BC4F8BCD3D36AFAB06BB35BB55B8361B6528CC9E10E938BA405B4847812EB32E54603010544A8124BF5C586DA4371EEF6C6691EF7F419F39144F142942763A5F2CDE1CB767D3B39393C796491BD8D240CB9F5E3EC68F97A7617B7A797A09EC629AEC31E0ED8934C9DB7ED5FAC51B7247C259D59A980C853DEBFC13C81CA542172DA45D7821073492980995034CE8013E48B942C8875899B56C3BD66CDB94558BF9553A29B45724BF9E62426C105F420034570B62EC4ABB15A82058136C49AE3E461581DA9ADA30A1959A5B6E01AD3460221F19541B729548887BE615CC882C4725A31FE8407942D49E51FE0090FAA6098017EAAC48337052E619407BA3D4B24437B091BD83F285B4ABE8941D92A5DAAA049B94BC23874E3A17B2A9F938F342EC0DCA9D75E421D74A18204DAE6F7B6394984341C8710A60D95BD5B7CF80F008A085403D010F93B3FDBF381801591C493C8FA6B0A1631C1F8FC7F9C9D9D9597C127F8F4E8118110341DD9EFE1A9A74C3BEEA4349943EE00F96470171EC55DB012B5EA833137891E1EF349E9536FF1A3D1107FCD4B5FE1CDD38948C63401ED54667D3B159B567D75A0C47A71015D70D373BDF3CAABCD016557E6A7A0C0A586B6F08!
00A1DBDF2F9FDD3EBB5D4E52CBA2F83C9FDAF84EA4360758C1F95E12CEDADD28640C797553E5630E6352359B574DA0590F1A8545EAFB8C1EAA8D9F5462577B160D86FF725927B622BC596B72D26BC61B456B1A44D670514CB1F6533637EEF95489CF9F223205D8A582943B10B44EC3A2F3FC6B9823E027241E60726112200010399BA33803E86BAB801047228ADEBE7DBB8C96CFFF1899CC7E626D221E0EAD45F560925ACFCFFE763C919B58D0F4388FE7F2431C9F5F9DB6EA676A3A3C4CEE29DC40345E06EC46AA931F316939E1D81B7C7121DF2D14F53F97FE98813D2D8E61C83934A3D99428CFAA8B9936AC614124F07873D28987C523FC6820D8DC1F1292885FD749695BAC877C5C980608196AF44275F435D3D92D6F772A8BEE93254BC2757EABF37C57FACF99769F0D210936ED4EB3E42131C1243F8AD014683D510D50389EAF155159DAB62AA6D74AFB268B80D06E63A54120145F4D114DA2CDCDCB7F7CF5FC56EE4922745DD8BE239B6C9834ECDA53D5E09D1C7518B4A2DB1331BF6EDA042354FA45780B8C53597C71872E192019B3670923561E6A9A0C9E2149CF9634138306518780607DFA465D4FC5991A5B089232F77B22A55C1B7E737E368D4FA647F99E1E8FF19B9816159FF74A0CE188DEF10CE38C71B69911FA2EE1C02555BBA2E667B85224C805625A505A8F!
C8F71387D250450A64FCE286B6A32DAD0AC9EF48724001A4F612979D1B7748A5F559A5
C36790D588963541B394D66FAB2475F422487F288A55E6C9E0F73554B93E9969326354A96B1EEC7AEB4276A604D10D195FA9B37148977C714BAD442796DA23950ADD945D7C5D24F92AA99423C2141F58DE51D2AA04D3287A36F9B953045A47AD246EB8C6BAE99F7EBE361C6C460123A5AD719696D948DFD25F6C18E7E5015B474A750633EE03E1675CCB26DEF63883D48774C6EE775EDA084C21801082E8BE71FD0BA76684CB5CC34AEA1E6D1E093B8EC20D592065D71C6221D9822DE81ED377D57E48BFD9C78C63E2874EA4808FA5088311C58F61D430874222C6AE63E0C270AFF1CD66546CCC94AD52F28194E522CE26C8753F1E4DE8FDFBF7D60D1A927257FC75A788B42A7FC23BCE4C702F874C23F4D0811C69E1672A659AE1533C886DCCBC081F9D559593DA98D42AE7389449A0BC0CE8810EA31EE88ABAFBF25FA561CEE9B0D51AD7A5DFAA0E0953D84EF3AF3FDD243FD27D3BBF9AB5F47B4175445226493E8E46D8976C120C432068FB17A8FEB19FA97AD3F26128571CC36AA781595B273E2EDB8DDB6A6DC66612FD7EA405FD1FCB863D9E5127EF62498768B36D9A43136D965BD07A744D914D6B1DC41C890F5767E36AE476253505C06661EA93EBDC83A9CFFAFE77CB43967E68354383F8E6BE16332AB9C363FF4EC2EA613B8DA69B97DB68FB9F7FDF37CB28D07E961C0!
01A6C70F987AB792C414C6F72F75C6C4AECEAFCBB45921D529DC4C9C1D1FDB21627587322EAA1D5F242959430C9E42510F24C56DB990BFE37D4E530B6167FABB0A6E5AEFB3BB1D5AA30631E0A1BF1C435617E3EA852DE1D3FDDB44F0E419374D770DBD4406F627AB1B5CED050026160788767034C13BD956248D5873581C1B5B993C73FA61F07DCE528AB03B3B5206D56E18D8023A0A6BA2EAEA3C45D37AF96AF6F3637B711B1D6AA53A40331EEDB23165B19FB26CCD9351D59B81FEF3EA6AA589B529FA6F3C357DB85B60B125273B3128189BF7BA7A244A3A283AD6B5837855565E28D1A93C882A24484BD76F3A67903910DB1A1E5349A37E42815D1E6D5A4990091D47949E58E751E93BC54DE9A7F3C2574D01350DD3FBC75DF6CE610D20B323D1D5DD77D60FE7E00F32C986FFFB97CFD7A8B8D5A4130D9502D245025B54D932ED228E87EF8F6EA402B3AC4EA8FA4C48FD12B4272D52D3276AE16998E5CFB003C42C219D4D4A552039CA7282C6D0140ECFF020C00AB15754C0DAAF1110000000049454E44AE426082');
+
+update Member set picture_id = 1 where memberid = 1;
+update Member set picture_id = 2 where memberid = 2;
+update Member set picture_id = 3 where memberid = 3;
+update Member set picture_id = 4 where memberid = 4;
+
+insert into AccountPermission (permissionId, recipient, target, action, discriminator) values (1, 'friends', 'MemberImage:5', 'view', 'role');
+insert into AccountPermission (permissionId, recipient, target, action, discriminator) values (2, 'user', 'MemberImage:6', 'view', 'role');
+
+insert into MemberBlog (blogid, member_id, entrydate, title, text) values (1, 1, '2007-01-05', 'My first blog entry!', '*Lorem ipsum* dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.');
+insert into MemberBlog (blogid, member_id, entrydate, title, text) values (2, 1, '2007-01-07', 'I love latin', 'Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem. Ut enim ad minima veniam, quis nostrum exercitationem ullam corporis suscipit laboriosam, nisi ut aliquid ex ea commodi consequatur? Quis autem vel eum iure reprehenderit qui in ea voluptate velit esse quam nihil molestiae consequatur, vel illum qui dolorem eum fugiat quo voluptas nulla pariatur?');
+
+insert into BlogComment (commentid, blog_id, commentor_id, commentdate, comment) values (1, 1, 2, '2007-01-06', 'At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi sint occaecati cupiditate non provident, similique sunt in culpa qui officia deserunt mollitia animi, id est laborum et dolorum fuga.');
+insert into BlogComment (commentid, blog_id, commentor_id, commentdate, comment) values (2, 1, 1, '2007-01-07', 'Et harum quidem rerum facilis est et expedita distinctio.');
+
+insert into MemberFriend (id, member_id, friend_id, authorized) values (1, 1, 2, 1);
+insert into MemberFriend (id, member_id, friend_id, authorized) values (2, 2, 1, 1);
+insert into MemberFriend (id, member_id, friend_id, authorized) values (3, 1, 3, 1);
+
+insert into FriendComment (id, member_id, friend_id, commentDate, comment) values (1, 1, 2, '2007-01-25', 'Cheer up!');
Modified: examples/trunk/seamspace/war/src/main/webapp/WEB-INF/web.xml
===================================================================
--- examples/trunk/seamspace/war/src/main/webapp/WEB-INF/web.xml 2009-05-18 04:48:30 UTC (rev 10923)
+++ examples/trunk/seamspace/war/src/main/webapp/WEB-INF/web.xml 2009-05-18 08:49:13 UTC (rev 10924)
@@ -31,6 +31,17 @@
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.seam</url-pattern>
</servlet-mapping>
+
+ <servlet>
+ <servlet-name>SeamSpace Content Servlet</servlet-name>
+ <servlet-class>org.jboss.seam.example.seamspace.ContentServlet</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+
+ <servlet-mapping>
+ <servlet-name>SeamSpace Content Servlet</servlet-name>
+ <url-pattern>/content/images/*</url-pattern>
+ </servlet-mapping>
<session-config>
<session-timeout>10</session-timeout>
Modified: examples/trunk/seamspace/war/src/main/webapp/home.xhtml
===================================================================
--- examples/trunk/seamspace/war/src/main/webapp/home.xhtml 2009-05-18 04:48:30 UTC (rev 10923)
+++ examples/trunk/seamspace/war/src/main/webapp/home.xhtml 2009-05-18 08:49:13 UTC (rev 10924)
@@ -2,8 +2,7 @@
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
- xmlns:f="http://java.sun.com/jsf/core"
- xmlns:s="http://jboss.com/products/seam/taglib">
+ xmlns:f="http://java.sun.com/jsf/core">
<ui:composition template="template.xhtml">
<ui:define name="content">
@@ -15,7 +14,7 @@
been put together to demonstrate the various features of the Seam Security API.
</p>
- <p><b>New!</b> You can now use the <s:link view="/hashgen.xhtml" value="Password Hash Generator"/>
+ <p><b>New!</b> You can now use the <h:link view="/hashgen.xhtml" value="Password Hash Generator"/>
page to generate password hashes for your own application.
</p>
@@ -74,11 +73,11 @@
<ui:repeat value="#{newMembers}" var="newMember">
<div class="newMember">
- <s:link view="/profile.seam" propagation="none">
+ <h:link view="/profile.seam" propagation="none">
<f:param name="name" value="#{newMember.memberName}"/>
#{newMember.memberName}<br/>
<h:graphicImage value="/content/images?id=#{newMember.picture.imageId}&width=90"/>
- </s:link>
+ </h:link>
</div>
</ui:repeat>
Modified: examples/trunk/seamspace/war/src/main/webapp/template.xhtml
===================================================================
--- examples/trunk/seamspace/war/src/main/webapp/template.xhtml 2009-05-18 04:48:30 UTC (rev 10923)
+++ examples/trunk/seamspace/war/src/main/webapp/template.xhtml 2009-05-18 08:49:13 UTC (rev 10924)
@@ -1,7 +1,6 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
- xmlns:s="http://jboss.com/products/seam/taglib"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core">
@@ -19,19 +18,19 @@
<div class="headerRight">
<div class="headerMenu">
- <s:fragment rendered="#{identity.loggedIn}">
- <s:link id="profile" view="/profile.xhtml" value="My Profile" propagation="none">
+ <ui:fragment rendered="#{identity.loggedIn}">
+ <h:link id="profile" view="/profile.xhtml" value="My Profile" propagation="none">
<f:param name="name" value="#{authenticatedMember.memberName}"/>
- </s:link>
+ </h:link>
<h:outputText styleClass="divider" value=" | "/>
- </s:fragment>
+ </ui:fragment>
- <s:fragment rendered="#{identity.hasRole('admin')}">
- <s:link id="security" view="/security.xhtml" value="Security" propagation="none"/>
+ <ui:fragment rendered="#{identity.hasRole('admin')}">
+ <h:link id="security" view="/security.xhtml" value="Security" propagation="none"/>
<h:outputText styleClass="divider" value=" | "/>
- </s:fragment>
+ </ui:fragment>
- <s:link id="logout" action="#{identity.logout()}" value="Log out" rendered="#{identity.loggedIn}"/>
+ <h:link id="logout" action="#{identity.logout()}" value="Log out" rendered="#{identity.loggedIn}"/>
<h:outputLink id="login" value="home.seam" rendered="#{not identity.loggedIn}">Log in</h:outputLink>
</div>
<br style="clear:both"/>
@@ -51,10 +50,10 @@
</div>
<div id="menubar">
- <s:link view="/home.xhtml" value="Home" propagation="none"/><h:outputText styleClass="divider" value=" | "/>
- <s:link value="Browse" onclick="javascript:alert('This feature coming soon!');return false"/><h:outputText styleClass="divider" value=" | "/>
- <s:link value="Blog" onclick="javascript:alert('This feature coming soon!');return false"/><h:outputText styleClass="divider" value=" | "/>
- <s:link value="Music" onclick="javascript:alert('This feature coming soon!');return false"/>
+ <h:link view="/home.xhtml" value="Home" propagation="none"/><h:outputText styleClass="divider" value=" | "/>
+ <h:link value="Browse" onclick="javascript:alert('This feature coming soon!');return false"/><h:outputText styleClass="divider" value=" | "/>
+ <h:link value="Blog" onclick="javascript:alert('This feature coming soon!');return false"/><h:outputText styleClass="divider" value=" | "/>
+ <h:link value="Music" onclick="javascript:alert('This feature coming soon!');return false"/>
</div>
<div id="content">
14 years, 11 months
Seam SVN: r10923 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-18 00:48:30 -0400 (Mon, 18 May 2009)
New Revision: 10923
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Configuration.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Wicket.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Configuration.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Configuration.po 2009-05-17 20:22:48 UTC (rev 10922)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Configuration.po 2009-05-18 04:48:30 UTC (rev 10923)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-05-05 12:31+0000\n"
-"PO-Revision-Date: 2009-05-16 21:14+0100\n"
+"PO-Revision-Date: 2009-05-18 06:47+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -734,7 +734,7 @@
#: Configuration.xml:387
#, no-c-format
msgid "The value of the <literal><ejb-name></literal> element in ejb-jar.xml"
-msgstr ""
+msgstr "Il valore dell'elemento <literal><ejb-name></literal> in ejb-jar.xml"
#. Tag: para
#: Configuration.xml:390
@@ -878,7 +878,7 @@
#: Configuration.xml:444
#, no-c-format
msgid "In order for this injection to work, the link must be established in the ejb-jar.xml file as follows:"
-msgstr ""
+msgstr "Per fare funzionare quest'injection, il link deve essere messo nel file ejb-jar.xml come mostrato:"
#. Tag: programlisting
#: Configuration.xml:446
@@ -1960,7 +1960,7 @@
#: Configuration.xml:880
#, no-c-format
msgid "Deploying custom resources"
-msgstr ""
+msgstr "Deploy di risorse personalizzate"
#. Tag: para
#: Configuration.xml:882
@@ -1984,11 +1984,12 @@
"<![CDATA[# A colon-separated list of annotation types to handle\n"
"org.jboss.seam.deployment.annotationTypes=com.acme.Foo:com.acme.Bar]]>"
+# can get hold = ?
#. Tag: para
#: Configuration.xml:898
#, no-c-format
msgid "Then, during application startup you can get hold of all classes annotated with <literal>@Foo</literal>:"
-msgstr ""
+msgstr "Poi durante l'avvio dell'applicazione si può comunicare con tutte le classi annotate con <literal>@Foo</literal>:"
#. Tag: programlisting
#: Configuration.xml:903
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Wicket.po 2009-05-17 20:22:48 UTC (rev 10922)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Wicket.po 2009-05-18 04:48:30 UTC (rev 10923)
@@ -6,7 +6,7 @@
"Project-Id-Version: Seam_Reference_Guide\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-05-16 19:19+0000\n"
-"PO-Revision-Date: 2009-05-16 21:26+0100\n"
+"PO-Revision-Date: 2009-05-18 06:42+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: Italian <stefano.travelli(a)gmail.com>\n"
"MIME-Version: 1.0\n"
@@ -243,17 +243,18 @@
msgid "Setting up your project"
msgstr "Impostare il progetto"
+# former = ?
#. Tag: para
#: Wicket.xml:176
#, no-c-format
msgid "Seam needs to instrument the bytecode of your Wicket classes to be able to intercept the annotations you use. The first decision to make is: do you want your code instrumented at runtime as your app is running, or at compile time? The former requires no integration with your build environment, but has a performance penalty when loading each instrumented class for the first time. The latter is faster, but requires you to integrate this instrumentation into your build environment."
-msgstr ""
+msgstr "Seam deve istruire il bytecode (instrumentare) delle classi Wicket per poter intercettare le annotazioni da usare. La prima decisione da compiere è: si vuole istruire il codice a runtime quando l'applicazione è in esecuzione oppure a compile time? Il former non richiede integrazioni con il proprio ambiente di build, ma ha dei problemi di performance quando ciascuna classe viene instrumentata per la prima volta. L'ultima è più veloce, ma richiede di integrare quest'instrumentazione nel proprio ambiente di build."
#. Tag: title
#: Wicket.xml:186
#, no-c-format
msgid "Runtime instrumentation"
-msgstr ""
+msgstr "Instrumentazione a runtime"
#. Tag: para
#: Wicket.xml:187
@@ -271,37 +272,37 @@
#: Wicket.xml:196
#, no-c-format
msgid "Any classes placed in the <literal>WEB-INF/wicket</literal> folder within your WAR deployment will be automatically instrumented by the seam-wicket runtime. You can arrange to place your wicket pages and components here by specifying a separate output folder for those classes in your IDE, or through the use of ant scripts."
-msgstr ""
+msgstr "Qualsiasi classe collocata nella cartella <literal>WEB-INF/wicket</literal> dentro il deploy WAR verrà automaticamente instrumentata dal runtime seam-wicket. Si possono collocare qua le pagine ed i componenti wicket specificando una cartella di output separata per quelle classi nel proprio IDE, o attraverso l'uso di script ant."
#. Tag: title
#: Wicket.xml:205
#, no-c-format
msgid "Runtime instrumentation agent"
-msgstr ""
+msgstr "Agente di instrumentazione a runtime"
#. Tag: para
#: Wicket.xml:206
#, no-c-format
msgid "The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an iinstrumentation agent through the Java Instrumentation api. This is accomplished through the following steps:"
-msgstr ""
+msgstr "Il file jar <literal>jboss-seam-wicket.jar</literal> può essere usato come agente di instrumentazione attraverso la Java Instrumentation API . Questo viene ottenuto attraverso i seguenti passi:"
#. Tag: para
#: Wicket.xml:211
#, no-c-format
msgid "Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a location for which you have an absolute path, as the Java Instrumentation API does not allow relative paths when specifying the location of an agent lib."
-msgstr ""
+msgstr "Si faccia in modo che il file <literal>jboss-seam-wicket.jar</literal> \"viva\" in una posizione in cui si abbia un percorso assoluto, poiché la Java Instrumentation API non consente percorsi relativi quando si specifica la locazione di una libreria agent."
#. Tag: para
#: Wicket.xml:216
#, no-c-format
msgid "Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the command line options when launching your webapp container:"
-msgstr ""
+msgstr "Si aggiunga <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> alle opzioni da linea di comando quando si lancia il container webapp:"
#. Tag: para
#: Wicket.xml:220
#, no-c-format
msgid "In addition, you will need to add an environment variable that specifies packages that the agent should instrument. This is accomplished by a comma separated list of package names:"
-msgstr ""
+msgstr "Inoltre occorrerà aggiungere una variabile d'ambiente che specifichi i pacchetti che l'agente deve instrumentare. Questo si ottiene con una lista di nomi di pacchetti separati da una virgola:"
#. Tag: programlisting
#: Wicket.xml:223
@@ -313,31 +314,31 @@
#: Wicket.xml:224
#, no-c-format
msgid "Note that if a package A is specified, classes in subpackages of A are also examined. The classes chosen for instrumentation can be further limited by specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</programlisting> and then marking instrumentable classes with the <literal>@SeamWicketComponent</literal> annotation, see <xref linkend=\"SeamWicketComponent\"/>."
-msgstr ""
+msgstr "Si noti che se viene specificato un pacchetto A, vengono esaminate anche le classi nei sottopacchetti di A. Le classi scelte per l'instrumentazioni possono essere ulteriormente limitate specificando: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</programlisting> e poi marcando le classi instrumentabili con l'annotazione <literal>@SeamWicketComponent</literal>, si veda <xref linkend=\"SeamWicketComponent\"/>."
#. Tag: title
#: Wicket.xml:234
#, no-c-format
msgid "Compile-time instrumentation"
-msgstr ""
+msgstr "Instrumentazione a compile-time"
#. Tag: para
#: Wicket.xml:235
#, no-c-format
msgid "Seam supports instrumentation at compile time through either Apache Ant or Apache Maven."
-msgstr ""
+msgstr "Seam supporta l'instrumentazione a compile-time attraverso Apache Ant o Apache Maven."
#. Tag: title
#: Wicket.xml:238
#, no-c-format
msgid "Instrumenting with ant"
-msgstr ""
+msgstr "Instrumentazione con ant"
#. Tag: para
#: Wicket.xml:239
#, no-c-format
msgid "Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </literal>. This is used in the following manner:"
-msgstr ""
+msgstr "Seam fornisce un task ant in <literal>jboss-seam-wicket-ant.jar </literal>. Viene usato nel seguente modo:"
#. Tag: programlisting
#: Wicket.xml:242
@@ -383,13 +384,13 @@
#: Wicket.xml:255
#, no-c-format
msgid "The <literal>useAnnotations</literal> attribute is used to make the ant task only include classes that have been marked with the <literal>@SeamWicketComponent</literal> annotation, see <xref linkend=\"SeamWicketComponent\"/>."
-msgstr ""
+msgstr "L'attributo <literal>useAnnotations</literal> è usato per fare includere al task ant solo le classi marcate con l'annotazione <literal>@SeamWicketComponent</literal>, si veda <xref linkend=\"SeamWicketComponent\"/>."
#. Tag: title
#: Wicket.xml:261
#, no-c-format
msgid "Instrumenting with maven"
-msgstr ""
+msgstr "Instrumentazione con maven"
#. Tag: para
#: Wicket.xml:262
@@ -420,18 +421,42 @@
" </plugins>\n"
"</build>]]></programlisting> The above example illustrates that the instrumentation is limited to classes specified by the <literal>includes</literal> element. In this example, the <literal>scanAnnotations</literal> is specified, see <xref linkend=\"SeamWicketComponent\"/>."
msgstr ""
+"Il repository maven <literal>repository.jboss.org</literal> fornisce un plugin chiamato <literal>seam-instrument-wicket</literal> con un mojo <literal>process-classes</literal>. Un esempio di configurazione del proprio pom.xml potrebbe essere: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> L'esempio di cui sopra illustra che l'instrumentazione è limitata alle classi specificate dall'elemento <literal>includes</literal>. In quest'esempio, viene specificato <literal>scanAnnotations</literal>, si veda <xref linkend=\"SeamWicketComponent\"/>."
#. Tag: title
#: Wicket.xml:274
#, no-c-format
msgid "The <literal>@SeamWicketComponent</literal> annotation"
-msgstr ""
+msgstr "L'annotazione <literal>@SeamWicketComponent</literal>"
#. Tag: para
#: Wicket.xml:275
#, no-c-format
msgid "Classes placed in WEB-INF/wicket will unconditionally be instrumented. The other instrumentation mechanisms all allow you to specify that instrumentation should only be applied to classes annotated with the <literal>@SeamWicketComponent</literal> annotation. This annotation is inherited, which means all subclasses of an annotated class will also be instrumented. An example usage is:"
-msgstr ""
+msgstr "Le classi posizionate in WEB-INF/wicket verranno instrumentate incondizionatamente. L'altro meccanismo di instrumentazione consente di specificare che l'instrumentazione venga applicata soltanto alle classi annotate con <literal>@SeamWicketComponent</literal>. Quest'annotazione viene ereditata, il che significa che tutte le sottoclassi di una classe annotata verranno instrumentate. Un esempio di utilizzo è:"
#. Tag: programlisting
#: Wicket.xml:280
14 years, 11 months
Seam SVN: r10922 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-17 16:22:48 -0400 (Sun, 17 May 2009)
New Revision: 10922
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Security.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Security.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Security.po 2009-05-17 19:39:01 UTC (rev 10921)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Security.po 2009-05-17 20:22:48 UTC (rev 10922)
@@ -6,7 +6,7 @@
"Project-Id-Version: Security\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-04-29 12:40+0000\n"
-"PO-Revision-Date: 2009-05-17 21:35+0100\n"
+"PO-Revision-Date: 2009-05-17 22:21+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: Italian <stefano.travelli(a)gmail.com>\n"
"MIME-Version: 1.0\n"
@@ -2989,7 +2989,7 @@
#: Security.xml:2402
#, no-c-format
msgid "One indication of a well designed user interface is that the user is not presented with options for which they don't have the necessary privileges to use. Seam Security allows conditional rendering of either 1) sections of a page or 2) individual controls, based upon the privileges of the user, using the very same EL expressions that are used for component security."
-msgstr "Una degli indici di un'interfaccia utente ben progettata è quando agli utenti non vengono presentate opzioni per le quali non hanno i permessi necessari per usarle. La sicurezza di Seam consente la visualizzazione condizionale sia di sezioni di una pagina che di singoli controlli, basata sui privilegi dell'utente, usando esattamente le stesse espressioni EL che sono usate nella sicurezza dei componenti."
+msgstr "Uno degli indici di interfaccia utente ben progettata è quando agli utenti non vengono presentate opzioni per le quali essi non hanno i permessi necessari. La sicurezza di Seam consente la visualizzazione condizionale sia di sezioni di una pagina che di singoli controlli, basata sui privilegi dell'utente, usando esattamente le stesse espressioni EL usate nella sicurezza dei componenti."
#. Tag: para
#: Security.xml:2409
@@ -3083,7 +3083,7 @@
#: Security.xml:2446
#, no-c-format
msgid "Page security requires that the application is using a <literal>pages.xml</literal> file, however is extremely simple to configure. Simply include a <literal><restrict/></literal> element within the <literal>page</literal> elements that you wish to secure. If no explicit restriction is specified by the <literal>restrict</literal> element, an implied permission of <literal>/viewId.xhtml:render</literal> will be checked when the page is accessed via a non-faces (GET) request, and a permission of <literal>/viewId.xhtml:restore</literal> will be required when any JSF postback (form submission) originates from the page. Otherwise, the specified restriction will be evaluated as a standard security expression. Here's a couple of examples:"
-msgstr "La sicurezza delle pagine richiede che l'applicazione usi un file <literal>pages.xml</literal>. Comunque è molto semplice da configurare. Basta includere un elemento <literal>>restrict<</literal> all'interno degli elementi <literal>page</literal> che si vogliono rendere sicuri. Se tramite l'elemento <literal>restrict</literal> non viene indicata esplicitamente una restrizione, verrà controllato implicitamente il permesso <literal>/viewId.xhtml:render</literal> quando la richiesta della pagina avviene in modo non-faces (GET), e il permesso<literal>/viewId.xhtml:restore</literal> quando un JSF postback (il submit della form) viene originato dalla pagina. Altrimenti viene la restrizione specificata verrà valutata come una normale espressione di sicurezza. Ecco un paio di esempi:"
+msgstr "La sicurezza delle pagine richiede che l'applicazione usi un file <literal>pages.xml</literal>. Comunque è molto semplice da configurare. Basta includere un elemento <literal><restrict></literal> all'interno degli elementi <literal>page</literal> che si vogliono rendere sicuri. Se tramite l'elemento <literal>restrict</literal> non viene indicata esplicitamente una restrizione, verrà controllato implicitamente il permesso <literal>/viewId.xhtml:render</literal> quando la richiesta della pagina avviene in modo non-faces (GET), e il permesso<literal>/viewId.xhtml:restore</literal> quando un JSF postback (il submit della form) viene originato dalla pagina. Altrimenti viene la restrizione specificata verrà valutata come una normale espressione di sicurezza. Ecco un paio di esempi:"
#. Tag: programlisting
#: Security.xml:2457
14 years, 11 months
Seam SVN: r10921 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-17 15:39:01 -0400 (Sun, 17 May 2009)
New Revision: 10921
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Security.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Security.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Security.po 2009-05-16 19:28:07 UTC (rev 10920)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Security.po 2009-05-17 19:39:01 UTC (rev 10921)
@@ -6,8 +6,8 @@
"Project-Id-Version: Security\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-04-29 12:40+0000\n"
-"PO-Revision-Date: 2009-03-24 09:12+0100\n"
-"Last-Translator: \n"
+"PO-Revision-Date: 2009-05-17 21:35+0100\n"
+"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: Italian <stefano.travelli(a)gmail.com>\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -30,68 +30,38 @@
#. Tag: para
#: Security.xml:9
#, no-c-format
-msgid ""
-"The Seam Security API provides a multitude of security-related features for "
-"your Seam-based application, covering such areas as:"
-msgstr ""
-"Le API della sicurezza di Seam forniscono una serie di caratteristiche "
-"relative alla sicurezza di un'applicazione basata su Seam, coprendo le "
-"seguenti aree:"
+msgid "The Seam Security API provides a multitude of security-related features for your Seam-based application, covering such areas as:"
+msgstr "Le API della sicurezza di Seam forniscono una serie di caratteristiche relative alla sicurezza di un'applicazione basata su Seam, coprendo le seguenti aree:"
#. Tag: para
#: Security.xml:16
#, no-c-format
-msgid ""
-"Authentication - an extensible, JAAS-based authentication layer that allows "
-"users to authenticate against any security provider."
-msgstr ""
-"Autenticazione - uno strato estensibile, basato su JAAS che consente "
-"all'utente di autenticarsi con qualsiasi fornitore di servizi di sicurezza."
+msgid "Authentication - an extensible, JAAS-based authentication layer that allows users to authenticate against any security provider."
+msgstr "Autenticazione - uno strato estensibile, basato su JAAS che consente all'utente di autenticarsi con qualsiasi fornitore di servizi di sicurezza."
#. Tag: para
#: Security.xml:22
#, no-c-format
-msgid ""
-"Identity Management - an API for managing a Seam application's users and "
-"roles at runtime."
-msgstr ""
-"Gestione delle identità - una API per gestire a run time gli utenti e i "
-"ruoli di una applicazione Seam."
+msgid "Identity Management - an API for managing a Seam application's users and roles at runtime."
+msgstr "Gestione delle identità - una API per gestire a run time gli utenti e i ruoli di una applicazione Seam."
#. Tag: para
#: Security.xml:27
#, no-c-format
-msgid ""
-"Authorization - an extremely comprehensive authorization framework, "
-"supporting user roles, persistent and rule-based permissions, and a "
-"pluggable permission resolver for easily implementing customised security "
-"logic."
-msgstr ""
-"Autorizzazione - un framework di autorizzazione estremamente comprensibile, "
-"che gestisce i ruoli degli utenti, i permessi persistenti oppure basati "
-"sulle regole e un risolutore di permessi modulare che consente di "
-"implementare facilmente una logica personalizzata per la gestione della "
-"sicurezza."
+msgid "Authorization - an extremely comprehensive authorization framework, supporting user roles, persistent and rule-based permissions, and a pluggable permission resolver for easily implementing customised security logic."
+msgstr "Autorizzazione - un framework di autorizzazione estremamente comprensibile, che gestisce i ruoli degli utenti, i permessi persistenti oppure basati sulle regole e un risolutore di permessi modulare che consente di implementare facilmente una logica personalizzata per la gestione della sicurezza."
#. Tag: para
#: Security.xml:33
#, no-c-format
-msgid ""
-"Permission Management - a set of built-in Seam components to allow easy "
-"management of an application's security policy."
-msgstr ""
-"Gestione dei permessi - un insieme di componenti Seam predefiniti che "
-"consente una gestione facile delle politiche di sicurezza dell'applicazione."
+msgid "Permission Management - a set of built-in Seam components to allow easy management of an application's security policy."
+msgstr "Gestione dei permessi - un insieme di componenti Seam predefiniti che consente una gestione facile delle politiche di sicurezza dell'applicazione."
#. Tag: para
#: Security.xml:39
#, no-c-format
-msgid ""
-"CAPTCHA support - to assist in the prevention of automated software/scripts "
-"abusing your Seam-based site."
-msgstr ""
-"Gestione dei CAPTCHA - per assistere nella prevenzione dagli attacchi "
-"automatici tramite software o script verso un sito basato su Seam."
+msgid "CAPTCHA support - to assist in the prevention of automated software/scripts abusing your Seam-based site."
+msgstr "Gestione dei CAPTCHA - per assistere nella prevenzione dagli attacchi automatici tramite software o script verso un sito basato su Seam."
#. Tag: para
#: Security.xml:44
@@ -103,9 +73,7 @@
#: Security.xml:50
#, no-c-format
msgid "This chapter will cover each of these features in detail."
-msgstr ""
-"Queste capitolo si occuperà in dettaglio di ciascuna di queste "
-"caratteristiche."
+msgstr "Queste capitolo si occuperà in dettaglio di ciascuna di queste caratteristiche."
#. Tag: title
#: Security.xml:57
@@ -116,23 +84,8 @@
#. Tag: para
#: Security.xml:59
#, no-c-format
-msgid ""
-"In some situations it may be necessary to disable Seam Security, for "
-"instances during unit tests or because you are using a different approach to "
-"security, such as native JAAS. Simply call the static method "
-"<literal>Identity.setSecurityEnabled(false)</literal> to disable the "
-"security infrastructure. Of course, it's not very convenient to have to call "
-"a static method when you want to configure the application, so as an "
-"alternative you can control this setting in components.xml:"
-msgstr ""
-"In determinate situazioni può essere necessario disabilitare la gestione "
-"della sicurezza in Seam, ad esempio durante i test oppure perché si sta "
-"usando un diverso approccio alla sicurezza, come l'uso diretto di JAAS. Per "
-"disabilitare l'infrastruttura della sicurezza chiamare semplicemente il "
-"metodo statico <literal>Identity.setSecurityEnabled(false)</literal>. "
-"Ovviamente non è molto pratico dover chiamare un metodo statico quando si "
-"vuole configurare un'applicazione, perciò in alternativa è possibile "
-"controllare questa impostazione in components.xml:"
+msgid "In some situations it may be necessary to disable Seam Security, for instances during unit tests or because you are using a different approach to security, such as native JAAS. Simply call the static method <literal>Identity.setSecurityEnabled(false)</literal> to disable the security infrastructure. Of course, it's not very convenient to have to call a static method when you want to configure the application, so as an alternative you can control this setting in components.xml:"
+msgstr "In determinate situazioni può essere necessario disabilitare la gestione della sicurezza in Seam, ad esempio durante i test oppure perché si sta usando un diverso approccio alla sicurezza, come l'uso diretto di JAAS. Per disabilitare l'infrastruttura della sicurezza chiamare semplicemente il metodo statico <literal>Identity.setSecurityEnabled(false)</literal>. Ovviamente non è molto pratico dover chiamare un metodo statico quando si vuole configurare un'applicazione, perciò in alternativa è possibile controllare questa impostazione in components.xml:"
#. Tag: para
#: Security.xml:69
@@ -167,20 +120,8 @@
#. Tag: para
#: Security.xml:85
#, no-c-format
-msgid ""
-"Assuming you are planning to take advantage of what Seam Security has to "
-"offer, the rest of this chapter documents the plethora of options you have "
-"for giving your user an identity in the eyes of the security model "
-"(authentication) and locking down the application by establishing "
-"constraints (authorization). Let's begin with the task of authentication "
-"since that's the foundation of any security model."
-msgstr ""
-"Assumendo che si stia pianificando di sfruttare i vantaggi che la sicurezza "
-"Seam ha da offrire, il resto di questo capitolo documenta l'insieme delle "
-"opzioni disponibili per dare agli utenti un'identità dal punto di vista del "
-"modello di sicurezza (autenticazione) e un accesso limitato all'applicazione "
-"secondo dei vincoli stabiliti (autorizzazione). Iniziamo con la questione "
-"dell'autenticazione poiché è il fondamento di ogni modello di sicurezza."
+msgid "Assuming you are planning to take advantage of what Seam Security has to offer, the rest of this chapter documents the plethora of options you have for giving your user an identity in the eyes of the security model (authentication) and locking down the application by establishing constraints (authorization). Let's begin with the task of authentication since that's the foundation of any security model."
+msgstr "Assumendo che si stia pianificando di sfruttare i vantaggi che la sicurezza Seam ha da offrire, il resto di questo capitolo documenta l'insieme delle opzioni disponibili per dare agli utenti un'identità dal punto di vista del modello di sicurezza (autenticazione) e un accesso limitato all'applicazione secondo dei vincoli stabiliti (autorizzazione). Iniziamo con la questione dell'autenticazione poiché è il fondamento di ogni modello di sicurezza."
#. Tag: title
#: Security.xml:95
@@ -191,20 +132,8 @@
#. Tag: para
#: Security.xml:97
#, no-c-format
-msgid ""
-"The authentication features provided by Seam Security are built upon JAAS "
-"(Java Authentication and Authorization Service), and as such provide a "
-"robust and highly configurable API for handling user authentication. "
-"However, for less complex authentication requirements Seam offers a much "
-"more simplified method of authentication that hides the complexity of JAAS."
-msgstr ""
-"Le caratteristiche relative all'autenticazione nella gestione della "
-"sicurezza di Seam sono costruite su JAAS (Java Authentication and "
-"Authorization Service, servizio di autenticazione e autorizzazione Java) e, "
-"come tali, forniscono una API robusta e altamente configurabile per gestire "
-"l'autentifica degli utenti. Comunque, per requisiti di autentifica meno "
-"complessi, Seam offre un metodo di autentifica molto semplificato che "
-"nasconde la complessità di JAAS."
+msgid "The authentication features provided by Seam Security are built upon JAAS (Java Authentication and Authorization Service), and as such provide a robust and highly configurable API for handling user authentication. However, for less complex authentication requirements Seam offers a much more simplified method of authentication that hides the complexity of JAAS."
+msgstr "Le caratteristiche relative all'autenticazione nella gestione della sicurezza di Seam sono costruite su JAAS (Java Authentication and Authorization Service, servizio di autenticazione e autorizzazione Java) e, come tali, forniscono una API robusta e altamente configurabile per gestire l'autentifica degli utenti. Comunque, per requisiti di autentifica meno complessi, Seam offre un metodo di autentifica molto semplificato che nasconde la complessità di JAAS."
#. Tag: title
#: Security.xml:104
@@ -215,41 +144,14 @@
#. Tag: para
#: Security.xml:107
#, no-c-format
-msgid ""
-"If you use Seam's Identity Management features (discussed later in this "
-"chapter) then it is not necessary to create an authenticator component (and "
-"you can skip this section)."
-msgstr ""
-"Nel caso si utilizzino le funzioni di gestione delle identità di Seam "
-"(discusse più avanti in questo capitolo) non è necessario creare un "
-"componente Authenticator (e si può saltare questo paragrafo)."
+msgid "If you use Seam's Identity Management features (discussed later in this chapter) then it is not necessary to create an authenticator component (and you can skip this section)."
+msgstr "Nel caso si utilizzino le funzioni di gestione delle identità di Seam (discusse più avanti in questo capitolo) non è necessario creare un componente Authenticator (e si può saltare questo paragrafo)."
#. Tag: para
#: Security.xml:113
#, no-c-format
-msgid ""
-"The simplified authentication method provided by Seam uses a built-in JAAS "
-"login module, <literal>SeamLoginModule</literal>, which delegates "
-"authentication to one of your own Seam components. This login module is "
-"already configured inside Seam as part of a default application policy and "
-"as such does not require any additional configuration files. It allows you "
-"to write an authentication method using the entity classes that are provided "
-"by your own application, or alternatively to authenticate with some other "
-"third party provider. Configuring this simplified form of authentication "
-"requires the <literal>identity</literal> component to be configured in "
-"<literal>components.xml</literal>:"
-msgstr ""
-"Il metodo di autenticazione semplificato fornito da Seam usa un modulo di "
-"login JAAS già fatto, <literal>SeamLoginModule</literal>, il quale delega "
-"l'autentifica ad uno dei componenti dell'applicazione. Questo modulo di "
-"login è già configurato all'interno di Seam come parte dei criteri di "
-"gestione di default e in quanto tale non richiede alcun file di "
-"configurazione aggiuntivo. Esso consente di scrivere un metodo di "
-"autentifica usando le classi entità che sono fornite dall'applicazione o, in "
-"alternativa, di esegure l'autentifica con qualche altro fornitore di terze "
-"parti. Per configurare questa forma semplificata di autentifica è richiesto "
-"di di configurare il componente <literal>Identity</literal> in "
-"<literal>components.xml</literal>:"
+msgid "The simplified authentication method provided by Seam uses a built-in JAAS login module, <literal>SeamLoginModule</literal>, which delegates authentication to one of your own Seam components. This login module is already configured inside Seam as part of a default application policy and as such does not require any additional configuration files. It allows you to write an authentication method using the entity classes that are provided by your own application, or alternatively to authenticate with some other third party provider. Configuring this simplified form of authentication requires the <literal>identity</literal> component to be configured in <literal>components.xml</literal>:"
+msgstr "Il metodo di autenticazione semplificato fornito da Seam usa un modulo di login JAAS già fatto, <literal>SeamLoginModule</literal>, il quale delega l'autentifica ad uno dei componenti dell'applicazione. Questo modulo di login è già configurato all'interno di Seam come parte dei criteri di gestione di default e in quanto tale non richiede alcun file di configurazione aggiuntivo. Esso consente di scrivere un metodo di autentifica usando le classi entità che sono fornite dall'applicazione o, in alternativa, di esegure l'autentifica con qualche altro fornitore di terze parti. Per configurare questa forma semplificata di autentifica è richiesto di di configurare il componente <literal>Identity</literal> in <literal>components.xml</literal>:"
#. Tag: programlisting
#: Security.xml:122
@@ -260,13 +162,10 @@
" xmlns:security=\"http://jboss.com/products/seam/security\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
" xsi:schemaLocation=\n"
-" \"http://jboss.com/products/seam/components http://jboss.com/"
-"products/seam/components-2.1.xsd\n"
-" http://jboss.com/products/seam/security http://jboss.com/"
-"products/seam/security-2.1.xsd\">\n"
+" \"http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd\n"
+" http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd\">\n"
"\n"
-" <security:identity authenticate-method=\"#{authenticator.authenticate}\"/"
-">\n"
+" <security:identity authenticate-method=\"#{authenticator.authenticate}\"/>\n"
"\n"
"</components>]]>"
msgstr ""
@@ -275,29 +174,18 @@
" xmlns:security=\"http://jboss.com/products/seam/security\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
" xsi:schemaLocation=\n"
-" \"http://jboss.com/products/seam/components http://jboss.com/"
-"products/seam/components-2.1.xsd\n"
-" http://jboss.com/products/seam/security http://jboss.com/"
-"products/seam/security-2.1.xsd\">\n"
+" \"http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd\n"
+" http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd\">\n"
"\n"
-" <security:identity authenticate-method=\"#{authenticator.authenticate}\"/"
-">\n"
+" <security:identity authenticate-method=\"#{authenticator.authenticate}\"/>\n"
"\n"
"</components>]]>"
#. Tag: para
#: Security.xml:124
#, no-c-format
-msgid ""
-"The EL expression <literal>#{authenticator.authenticate}</literal> is a "
-"method binding that indicates the <literal>authenticate</literal> method of "
-"the <literal>authenticator</literal> component will be used to authenticate "
-"the user."
-msgstr ""
-"L'espressione EL <literal>#{authenticator.authenticate}</literal> è la "
-"definizione di un metodo tramite la quale si indica che il metodo "
-"<literal>authenticate</literal> del componente <literal>authenticator</"
-"literal> verrà usato per autenticare l'utente."
+msgid "The EL expression <literal>#{authenticator.authenticate}</literal> is a method binding that indicates the <literal>authenticate</literal> method of the <literal>authenticator</literal> component will be used to authenticate the user."
+msgstr "L'espressione EL <literal>#{authenticator.authenticate}</literal> è la definizione di un metodo tramite la quale si indica che il metodo <literal>authenticate</literal> del componente <literal>authenticator</literal> verrà usato per autenticare l'utente."
#. Tag: title
#: Security.xml:133
@@ -308,33 +196,8 @@
#. Tag: para
#: Security.xml:135
#, no-c-format
-msgid ""
-"The <literal>authenticate-method</literal> property specified for "
-"<literal>identity</literal> in <literal>components.xml</literal> specifies "
-"which method will be used by <literal>SeamLoginModule</literal> to "
-"authenticate users. This method takes no parameters, and is expected to "
-"return a boolean, which indicates whether authentication is successful or "
-"not. The user's username and password can be obtained from "
-"<literal>Credentials.getUsername()</literal> and <literal>Credentials."
-"getPassword()</literal>, respectively (you can get a reference to the "
-"<literal>credentials</literal> component via <literal>Identity.instance()."
-"getCredentials()</literal>). Any roles that the user is a member of should "
-"be assigned using <literal>Identity.addRole()</literal>. Here's a complete "
-"example of an authentication method inside a POJO component:"
-msgstr ""
-"La proprietà <literal>authenticate-method</literal> specificata per "
-"<literal>identity</literal> in <literal>components.xml</literal> specifica "
-"quale metodo sarà usato dal <literal>SeamLoginModule</literal> per "
-"autenticare l'utente. Questo metodo non ha parametri ed è previsto che "
-"restituisca un boolean, il quale indica se l'autenticazione ha avuto "
-"successo o no. Il nome utente e la password possono essere ottenuti da "
-"<literal>Credentials.getUsername()</literal> e <literal>Credentials."
-"getPassword()</literal> rispettivamente (è possibile avere un riferimento al "
-"componente <literal>credentials</literal> tramite <literal>Identiy.instance"
-"().getCredentials()</literal>). Tutti i ruoli di cui l'utente è membro "
-"devono essere assegnati usando <literal>Identity.addRole()</literal>. Ecco "
-"un esempio completo di un metodo di autentifica all'interno di un componente "
-"POJO:"
+msgid "The <literal>authenticate-method</literal> property specified for <literal>identity</literal> in <literal>components.xml</literal> specifies which method will be used by <literal>SeamLoginModule</literal> to authenticate users. This method takes no parameters, and is expected to return a boolean, which indicates whether authentication is successful or not. The user's username and password can be obtained from <literal>Credentials.getUsername()</literal> and <literal>Credentials.getPassword()</literal>, respectively (you can get a reference to the <literal>credentials</literal> component via <literal>Identity.instance().getCredentials()</literal>). Any roles that the user is a member of should be assigned using <literal>Identity.addRole()</literal>. Here's a complete example of an authentication method inside a POJO component:"
+msgstr "La proprietà <literal>authenticate-method</literal> specificata per <literal>identity</literal> in <literal>components.xml</literal> specifica quale metodo sarà usato dal <literal>SeamLoginModule</literal> per autenticare l'utente. Questo metodo non ha parametri ed è previsto che restituisca un boolean, il quale indica se l'autenticazione ha avuto successo o no. Il nome utente e la password possono essere ottenuti da <literal>Credentials.getUsername()</literal> e <literal>Credentials.getPassword()</literal> rispettivamente (è possibile avere un riferimento al componente <literal>credentials</literal> tramite <literal>Identity.instance().getCredentials()</literal>). Tutti i ruoli di cui l'utente è membro devono essere assegnati usando <literal>Identity.addRole()</literal>. Ecco un esempio completo di un metodo di autentifica all'interno di un componente POJO:"
#. Tag: programlisting
#: Security.xml:147
@@ -349,8 +212,7 @@
" public boolean authenticate() {\n"
" try {\n"
" User user = (User) entityManager.createQuery(\n"
-" \"from User where username = :username and password = :password"
-"\")\n"
+" \"from User where username = :username and password = :password\")\n"
" .setParameter(\"username\", credentials.getUsername())\n"
" .setParameter(\"password\", credentials.getPassword())\n"
" .getSingleResult();\n"
@@ -379,8 +241,7 @@
" public boolean authenticate() {\n"
" try {\n"
" User user = (User) entityManager.createQuery(\n"
-" \"from User where username = :username and password = :password"
-"\")\n"
+" \"from User where username = :username and password = :password\")\n"
" .setParameter(\"username\", credentials.getUsername())\n"
" .setParameter(\"password\", credentials.getPassword())\n"
" .getSingleResult();\n"
@@ -403,46 +264,14 @@
#. Tag: para
#: Security.xml:149
#, no-c-format
-msgid ""
-"In the above example, both <literal>User</literal> and <literal>UserRole</"
-"literal> are application-specific entity beans. The <literal>roles</literal> "
-"parameter is populated with the roles that the user is a member of, which "
-"should be added to the <literal>Set</literal> as literal string values, e.g. "
-"\"admin\", \"user\". In this case, if the user record is not found and a "
-"<literal>NoResultException</literal> thrown, the authentication method "
-"returns <literal>false</literal> to indicate the authentication failed."
-msgstr ""
-"Nell'esempio precedente sia <literal>User</literal> che <literal>UserRole</"
-"literal> sono entity bean specifici dell'applicazione. Il parametro "
-"<literal>roles</literal> è popolato con i ruoli di cui l'utente è membro, "
-"che devono essere aggiunti alla <literal>Set</literal> come valori stringa, "
-"ad esempio \"amministratore\", \"utente\". In questo caso, se il record "
-"dell'utente non viene trovato e una <literal>NoResultException</literal> "
-"viene lanciata, il metodo di autenticazione restituisce <literal>false</"
-"literal> per indicare che l'autentifica è fallita."
+msgid "In the above example, both <literal>User</literal> and <literal>UserRole</literal> are application-specific entity beans. The <literal>roles</literal> parameter is populated with the roles that the user is a member of, which should be added to the <literal>Set</literal> as literal string values, e.g. \"admin\", \"user\". In this case, if the user record is not found and a <literal>NoResultException</literal> thrown, the authentication method returns <literal>false</literal> to indicate the authentication failed."
+msgstr "Nell'esempio precedente sia <literal>User</literal> che <literal>UserRole</literal> sono entity bean specifici dell'applicazione. Il parametro <literal>roles</literal> è popolato con i ruoli di cui l'utente è membro, che devono essere aggiunti alla <literal>Set</literal> come valori stringa, ad esempio \"amministratore\", \"utente\". In questo caso, se il record dell'utente non viene trovato e una <literal>NoResultException</literal> viene lanciata, il metodo di autenticazione restituisce <literal>false</literal> per indicare che l'autentifica è fallita."
#. Tag: para
#: Security.xml:158
#, no-c-format
-msgid ""
-"When writing an authenticator method, it is important that it is kept "
-"minimal and free from any side-effects. This is because there is no "
-"guarantee as to how many times the authenticator method will be called by "
-"the security API, and as such it may be invoked multiple times during a "
-"single request. Because of this, any special code that should execute upon a "
-"successful or failed authentication should be written by implementing an "
-"event observer. See the section on Security Events further down in this "
-"chapter for more information about which events are raised by Seam Security."
-msgstr ""
-"Nella scrittura di metodo di autenticazione è importante ridurlo al minimo e "
-"libero da ogni effetto collaterale. Il motivo è che non c'è garanzia sul "
-"numero di volte che il metodo di autentifica può essere chiamato dalle API "
-"della sicurezza, di conseguenza esso potrebbe essere invocato più volte "
-"durante una singola richiesta. Perciò qualsiasi codice che si vuole eseguire "
-"in seguito ad una autentifica fallita o completata con successo dovrebbe "
-"essere scritto implementando un observer. Vedi il paragrafo sugli Eventi di "
-"Sicurezza più avanti in questo capitolo per maggiori informazioni su quali "
-"eventi sono emessi dalla gestione della sicurezza Seam."
+msgid "When writing an authenticator method, it is important that it is kept minimal and free from any side-effects. This is because there is no guarantee as to how many times the authenticator method will be called by the security API, and as such it may be invoked multiple times during a single request. Because of this, any special code that should execute upon a successful or failed authentication should be written by implementing an event observer. See the section on Security Events further down in this chapter for more information about which events are raised by Seam Security."
+msgstr "Nella scrittura di metodo di autenticazione è importante ridurlo al minimo e libero da ogni effetto collaterale. Il motivo è che non c'è garanzia sul numero di volte che il metodo di autentifica può essere chiamato dalle API della sicurezza, di conseguenza esso potrebbe essere invocato più volte durante una singola richiesta. Perciò qualsiasi codice che si vuole eseguire in seguito ad una autentifica fallita o completata con successo dovrebbe essere scritto implementando un observer. Vedi il paragrafo sugli Eventi di Sicurezza più avanti in questo capitolo per maggiori informazioni su quali eventi sono emessi dalla gestione della sicurezza Seam."
#. Tag: title
#: Security.xml:170
@@ -453,42 +282,14 @@
#. Tag: para
#: Security.xml:172
#, no-c-format
-msgid ""
-"The <literal>Identity.addRole()</literal> method behaves differently "
-"depending on whether the current session is authenticated or not. If the "
-"session is not authenticated, then <literal>addRole()</literal> should "
-"<emphasis>only</emphasis> be called during the authentication process. When "
-"called here, the role name is placed into a temporary list of pre-"
-"authenticated roles. Once authentication is successful, the pre-"
-"authenticated roles then become \"real\" roles, and calling "
-"<literal>Identity.hasRole()</literal> for those roles will then return true. "
-"The following sequence diagram represents the list of pre-authenticated "
-"roles as a first class object to show more clearly how it fits in to the "
-"authentication process."
-msgstr ""
-"Il metodo <literal>Identity.addRole()</literal> si comporta in modo diverso "
-"a seconda che la sessione corrente sia autenticata o meno. Se la sessione "
-"non è autenticata, allora <literal>addRole()</literal> dovrebbe essere "
-"chiamato <emphasis>solo</emphasis> durante il processo di autenticazione. "
-"Quando viene chiamato in questo contesto, il nome del ruolo è messo in una "
-"lista temporanea di ruoli pre autenticati. Una volta che l'autentifica è "
-"completata i ruoli pre autenticati diventano ruoli \"reali\" e chiamando "
-"<literal>Identity.hasRole()</literal> per questi ruoli si otterrà "
-"<literal>true</literal>. Il seguente diagramma di sequenza rappresenta la "
-"lista dei ruoli pre autenticati come oggetto in primo piano per mostrare più "
-"chiaramente come si inserisce nel processo di autentifica."
+msgid "The <literal>Identity.addRole()</literal> method behaves differently depending on whether the current session is authenticated or not. If the session is not authenticated, then <literal>addRole()</literal> should <emphasis>only</emphasis> be called during the authentication process. When called here, the role name is placed into a temporary list of pre-authenticated roles. Once authentication is successful, the pre-authenticated roles then become \"real\" roles, and calling <literal>Identity.hasRole()</literal> for those roles will then return true. The following sequence diagram represents the list of pre-authenticated roles as a first class object to show more clearly how it fits in to the authentication process."
+msgstr "Il metodo <literal>Identity.addRole()</literal> si comporta in modo diverso a seconda che la sessione corrente sia autenticata o meno. Se la sessione non è autenticata, allora <literal>addRole()</literal> dovrebbe essere chiamato <emphasis>solo</emphasis> durante il processo di autenticazione. Quando viene chiamato in questo contesto, il nome del ruolo è messo in una lista temporanea di ruoli pre autenticati. Una volta che l'autentifica è completata i ruoli pre autenticati diventano ruoli \"reali\" e chiamando <literal>Identity.hasRole()</literal> per questi ruoli si otterrà <literal>true</literal>. Il seguente diagramma di sequenza rappresenta la lista dei ruoli pre autenticati come oggetto in primo piano per mostrare più chiaramente come si inserisce nel processo di autentifica."
#. Tag: para
#: Security.xml:192
#, no-c-format
-msgid ""
-"If the current session is already authenticated, then calling "
-"<literal>Identity.addRole()</literal> will have the expected effect of "
-"immediately granting the specified role to the current user."
-msgstr ""
-"Se la sessione corrente è già autenticata, allora la chiamata "
-"<literal>Identity.addRole()</literal> avrà l'effetto atteso di concedere "
-"immediatamente il ruolo specificato all'utente corrente."
+msgid "If the current session is already authenticated, then calling <literal>Identity.addRole()</literal> will have the expected effect of immediately granting the specified role to the current user."
+msgstr "Se la sessione corrente è già autenticata, allora la chiamata <literal>Identity.addRole()</literal> avrà l'effetto atteso di concedere immediatamente il ruolo specificato all'utente corrente."
#. Tag: title
#: Security.xml:200
@@ -499,15 +300,8 @@
#. Tag: para
#: Security.xml:202
#, no-c-format
-msgid ""
-"Say for example, that upon a successful login that some user statistics must "
-"be updated. This would be done by writing an event observer for the "
-"<literal>org.jboss.seam.security.loginSuccessful</literal> event, like this:"
-msgstr ""
-"Supponiamo, ad esempio, che in seguito ad un accesso concluso con successo "
-"debbano essere aggiornate certe statistiche relative all'utente. Questo può "
-"essere fatto scrivendo un observer per l'evento <literal>org.jboss.seam."
-"security.loginSuccessful</literal>, come questo:"
+msgid "Say for example, that upon a successful login that some user statistics must be updated. This would be done by writing an event observer for the <literal>org.jboss.seam.security.loginSuccessful</literal> event, like this:"
+msgstr "Supponiamo, ad esempio, che in seguito ad un accesso concluso con successo debbano essere aggiornate certe statistiche relative all'utente. Questo può essere fatto scrivendo un observer per l'evento <literal>org.jboss.seam.security.loginSuccessful</literal>, come questo:"
#. Tag: programlisting
#: Security.xml:208
@@ -534,14 +328,8 @@
#. Tag: para
#: Security.xml:210
#, no-c-format
-msgid ""
-"This observer method can be placed anywhere, even in the Authenticator "
-"component itself. You can find more information about security-related "
-"events later in this chapter."
-msgstr ""
-"Questo metodo observer può essere messo ovunque, anche nello stesso "
-"componente Authenticator. E' possibile trovare maggiori informazioni sugli "
-"eventi relativi alla sicurezza più avanti in questo capitolo."
+msgid "This observer method can be placed anywhere, even in the Authenticator component itself. You can find more information about security-related events later in this chapter."
+msgstr "Questo metodo observer può essere messo ovunque, anche nello stesso componente Authenticator. E' possibile trovare maggiori informazioni sugli eventi relativi alla sicurezza più avanti in questo capitolo."
#. Tag: title
#: Security.xml:219
@@ -552,23 +340,8 @@
#. Tag: para
#: Security.xml:221
#, no-c-format
-msgid ""
-"The <literal>credentials</literal> component provides both "
-"<literal>username</literal> and <literal>password</literal> properties, "
-"catering for the most common authentication scenario. These properties can "
-"be bound directly to the username and password fields on a login form. Once "
-"these properties are set, calling <literal>identity.login()</literal> will "
-"authenticate the user using the provided credentials. Here's an example of a "
-"simple login form:"
-msgstr ""
-"Il componente <literal>credentials</literal> fornisce sia la proprietà "
-"<literal>username</literal> che la <literal>password</literal>, "
-"soddisfacendo lo scenario di autenticazione più comune. Queste proprietà "
-"possono essere collegate direttamente ai campi username e password di una "
-"form di accesso. Una volta che queste proprietà sono impostate, chiamando "
-"<literal>identity.login()</literal> si otterrà l'autentifica dell'utente "
-"usando le credenziali fornite. Ecco un esempio di una semplice form di "
-"accesso: "
+msgid "The <literal>credentials</literal> component provides both <literal>username</literal> and <literal>password</literal> properties, catering for the most common authentication scenario. These properties can be bound directly to the username and password fields on a login form. Once these properties are set, calling <literal>identity.login()</literal> will authenticate the user using the provided credentials. Here's an example of a simple login form:"
+msgstr "Il componente <literal>credentials</literal> fornisce sia la proprietà <literal>username</literal> che la <literal>password</literal>, soddisfacendo lo scenario di autenticazione più comune. Queste proprietà possono essere collegate direttamente ai campi username e password di una form di accesso. Una volta che queste proprietà sono impostate, chiamando <literal>identity.login()</literal> si otterrà l'autentifica dell'utente usando le credenziali fornite. Ecco un esempio di una semplice form di accesso: "
#. Tag: programlisting
#: Security.xml:229
@@ -605,15 +378,8 @@
#. Tag: para
#: Security.xml:231
#, no-c-format
-msgid ""
-"Similarly, logging out the user is done by calling <literal>#{identity."
-"logout}</literal>. Calling this action will clear the security state of the "
-"currently authenticated user, and invalidate the user's session."
-msgstr ""
-"Allo stesso modo, l'uscita dell'utente viene fatta chiamando <literal>#"
-"{identity.logout}</literal>. La chiamata di questa azione cancellerà lo "
-"stato della sicurezza dell'utente correntemente autenticato e invaliderà la "
-"sessione dell'utente."
+msgid "Similarly, logging out the user is done by calling <literal>#{identity.logout}</literal>. Calling this action will clear the security state of the currently authenticated user, and invalidate the user's session."
+msgstr "Allo stesso modo, l'uscita dell'utente viene fatta chiamando <literal>#{identity.logout}</literal>. La chiamata di questa azione cancellerà lo stato della sicurezza dell'utente correntemente autenticato e invaliderà la sessione dell'utente."
#. Tag: title
#: Security.xml:239
@@ -624,18 +390,14 @@
#. Tag: para
#: Security.xml:240
#, no-c-format
-msgid ""
-"So to sum up, there are the three easy steps to configure authentication:"
-msgstr ""
-"Riepilogando, ci sono tre semplici passi per configurare l'autenticazione:"
+msgid "So to sum up, there are the three easy steps to configure authentication:"
+msgstr "Riepilogando, ci sono tre semplici passi per configurare l'autenticazione:"
#. Tag: para
#: Security.xml:246
#, no-c-format
-msgid ""
-"Configure an authentication method in <literal>components.xml</literal>."
-msgstr ""
-"Configurare un metodo di autenticazione in <literal>components.xml</literal>."
+msgid "Configure an authentication method in <literal>components.xml</literal>."
+msgstr "Configurare un metodo di autenticazione in <literal>components.xml</literal>."
#. Tag: para
#: Security.xml:251
@@ -658,127 +420,38 @@
#. Tag: para
#: Security.xml:267
#, no-c-format
-msgid ""
-"Seam Security supports the same kind of \"Remember Me\" functionality that "
-"is commonly encountered in many online web-based applications. It is "
-"actually supported in two different \"flavours\", or modes - the first mode "
-"allows the username to be stored in the user's browser as a cookie, and "
-"leaves the entering of the password up to the browser (many modern browsers "
-"are capable of remembering passwords)."
-msgstr ""
-"La sicurezza di Seam gestisce lo stesso tipo di funzionalità \"Ricordami su "
-"questo computer\" che si incontra comunemente in molte applicazioni basate "
-"sull'interfaccia web. In effetti essa è gestita in due diverse \"varietà\" o "
-"modalità. La prima modalità consente al nome utente di essere memorizzato "
-"nel browser dell'utente come un cookie e lascia che sia il browser ad "
-"inserire la password (molti browser moderni sono in grado di ricordare le "
-"password). "
+msgid "Seam Security supports the same kind of \"Remember Me\" functionality that is commonly encountered in many online web-based applications. It is actually supported in two different \"flavours\", or modes - the first mode allows the username to be stored in the user's browser as a cookie, and leaves the entering of the password up to the browser (many modern browsers are capable of remembering passwords)."
+msgstr "La sicurezza di Seam gestisce lo stesso tipo di funzionalità \"Ricordami su questo computer\" che si incontra comunemente in molte applicazioni basate sull'interfaccia web. In effetti essa è gestita in due diverse \"varietà\" o modalità. La prima modalità consente al nome utente di essere memorizzato nel browser dell'utente come un cookie e lascia che sia il browser ad inserire la password (molti browser moderni sono in grado di ricordare le password). "
#. Tag: para
#: Security.xml:274
#, no-c-format
-msgid ""
-"The second mode supports the storing of a unique token in a cookie, and "
-"allows a user to authenticate automatically upon returning to the site, "
-"without having to provide a password."
-msgstr ""
-"La seconda modalità gestisce la memorizzazione di un identificativo unico in "
-"un cookie e consente all'utente di autenticarsi automaticamente non appena "
-"ritorna sul sito, senza dover fornire una password."
+msgid "The second mode supports the storing of a unique token in a cookie, and allows a user to authenticate automatically upon returning to the site, without having to provide a password."
+msgstr "La seconda modalità gestisce la memorizzazione di un identificativo unico in un cookie e consente all'utente di autenticarsi automaticamente non appena ritorna sul sito, senza dover fornire una password."
#. Tag: para
#: Security.xml:280
#, no-c-format
-msgid ""
-"Automatic client authentication with a persistent cookie stored on the "
-"client machine is dangerous. While convenient for users, any cross-site "
-"scripting security hole in your website would have dramatically more serious "
-"effects than usual. Without the authentication cookie, the only cookie to "
-"steal for an attacker with XSS is the cookie of the current session of a "
-"user. This means the attack only works when the user has an open session - "
-"which should be a short timespan. However, it is much more attractive and "
-"dangerous if an attacker has the possibility to steal a persistent Remember "
-"Me cookie that allows him to login without authentication, at any time. Note "
-"that this all depends on how well you protect your website against XSS "
-"attacks - it's up to you to make sure that your website is 100% XSS safe - a "
-"non-trival achievement for any website that allows user input to be rendered "
-"on a page."
-msgstr ""
-"L'autenticazione automatica tramite un cookie persistente memorizzato sulla "
-"macchina client è pericolosa. Benché sia conveniente per gli utenti, "
-"qualsiasi debolezza nella sicurezza che consenta un cross-site scripting nel "
-"sito avrebbe effetti drammaticamente più gravi del solito. Senza il cookie "
-"di autentifica, il solo cookie che un malintenzionato può prelevare tramite "
-"un attacco XSS è il cookie della sessione corrente dell'utente. Ciò "
-"significa che l'attacco funziona solo quando l'utente ha una sessione "
-"aperta, ovvero per un intervallo di tempo limitato. Al contrario è molto più "
-"allettante e pericoloso se un malintenzionato ha la possibilità di prelevare "
-"il cookie relativo alla funzione \"Ricordami su questo computer\", il quale "
-"gli consentirebbe di accedere senza autentifica ogni volta che vuole. Notare "
-"che questo dipende anche da quanto è efficace la protezione del sito dagli "
-"attacchi XSS. Sta a chi scrive l'applicazione fare in modo che il sito sia "
-"sicuro al 100% dagli attacchi XSS, un obiettivo non banale per qualsiasi "
-"sito che consente di rappresentare sulle pagine un contenuto scritto dagli "
-"utenti."
+msgid "Automatic client authentication with a persistent cookie stored on the client machine is dangerous. While convenient for users, any cross-site scripting security hole in your website would have dramatically more serious effects than usual. Without the authentication cookie, the only cookie to steal for an attacker with XSS is the cookie of the current session of a user. This means the attack only works when the user has an open session - which should be a short timespan. However, it is much more attractive and dangerous if an attacker has the possibility to steal a persistent Remember Me cookie that allows him to login without authentication, at any time. Note that this all depends on how well you protect your website against XSS attacks - it's up to you to make sure that your website is 100% XSS safe - a non-trival achievement for any website that allows user input to be rendered on a page."
+msgstr "L'autenticazione automatica tramite un cookie persistente memorizzato sulla macchina client è pericolosa. Benché sia conveniente per gli utenti, qualsiasi debolezza nella sicurezza che consenta un cross-site scripting nel sito avrebbe effetti drammaticamente più gravi del solito. Senza il cookie di autentifica, il solo cookie che un malintenzionato può prelevare tramite un attacco XSS è il cookie della sessione corrente dell'utente. Ciò significa che l'attacco funziona solo quando l'utente ha una sessione aperta, ovvero per un intervallo di tempo limitato. Al contrario è molto più allettante e pericoloso se un malintenzionato ha la possibilità di prelevare il cookie relativo alla funzione \"Ricordami su questo computer\", il quale gli consentirebbe di accedere senza autentifica ogni volta che vuole. Notare che questo dipende anche da quanto è efficace la protezione del sito dagli attacchi XSS. Sta a chi scrive l'applicazione fare in modo che il sito sia si!
curo al 100% dagli attacchi XSS, un obiettivo non banale per qualsiasi sito che consente di rappresentare sulle pagine un contenuto scritto dagli utenti."
#. Tag: para
#: Security.xml:291
#, no-c-format
-msgid ""
-"Browser vendors recognized this issue and introduced a \"Remember Passwords"
-"\" feature - today almost all browsers support this. Here, the browser "
-"remembers the login username and password for a particular website and "
-"domain, and fills out the login form automatically when you don't have an "
-"active session with the website. If you as a website designer then offer a "
-"convenient login keyboard shortcut, this approach is almost as convenient as "
-"a \"Remember Me\" cookie and much safer. Some browsers (e.g. Safari on OS X) "
-"even store the login form data in the encrypted global operation system "
-"keychain. Or, in a networked environment, the keychain can be transported "
-"with the user (between laptop and desktop for example), while browser "
-"cookies are usually not synchronized."
-msgstr ""
-"I produttori di browser hanno riconosciuto questo problema e hanno "
-"introdotto la funzione \"Ricorda la password\", oggi disponibile su quasi "
-"tutti i browser. In questo caso il browser ricorda il nome utente e la "
-"password per un certo sito e dominio, e riempie la form di accesso "
-"automaticamente quando non è attiva una sessione con il sito. Se poi il "
-"progettista del sito offre una scorciatoia da tastiera conveniente, questo "
-"approccio è quasi altrettanto immediato come il cookie \"Ricordami su questo "
-"computer\", ma molto più sicuro. Alcuni browser (ad esempio Safari su OS X) "
-"memorizzano addirittura i dati delle form di accesso nel portachiavi cifrato "
-"di sistema. Oppure, in un ambiente di rete, il portachiavi può essere "
-"trasportato dall'utente (tra il portatile e il desktop, ad esempio), mentre "
-"i cookie del browser di solito non sono sincronizzati."
+msgid "Browser vendors recognized this issue and introduced a \"Remember Passwords\" feature - today almost all browsers support this. Here, the browser remembers the login username and password for a particular website and domain, and fills out the login form automatically when you don't have an active session with the website. If you as a website designer then offer a convenient login keyboard shortcut, this approach is almost as convenient as a \"Remember Me\" cookie and much safer. Some browsers (e.g. Safari on OS X) even store the login form data in the encrypted global operation system keychain. Or, in a networked environment, the keychain can be transported with the user (between laptop and desktop for example), while browser cookies are usually not synchronized."
+msgstr "I produttori di browser hanno riconosciuto questo problema e hanno introdotto la funzione \"Ricorda la password\", oggi disponibile su quasi tutti i browser. In questo caso il browser ricorda il nome utente e la password per un certo sito e dominio, e riempie la form di accesso automaticamente quando non è attiva una sessione con il sito. Se poi il progettista del sito offre una scorciatoia da tastiera conveniente, questo approccio è quasi altrettanto immediato come il cookie \"Ricordami su questo computer\", ma molto più sicuro. Alcuni browser (ad esempio Safari su OS X) memorizzano addirittura i dati delle form di accesso nel portachiavi cifrato di sistema. Oppure, in un ambiente di rete, il portachiavi può essere trasportato dall'utente (tra il portatile e il desktop, ad esempio), mentre i cookie del browser di solito non sono sincronizzati."
#. Tag: para
#: Security.xml:301
#, no-c-format
-msgid ""
-"To summarize: While everyone is doing it, persistent \"Remember Me\" cookies "
-"with automatic authentication are a bad practice and should not be used. "
-"Cookies that \"remember\" only the users login name, and fill out the login "
-"form with that username as a convenience, are not an issue."
-msgstr ""
-"In definitiva: benché tutti lo stiano facendo, il cookie \"Ricordami su "
-"questo computer\" con l'autenticazione automatica è un cattiva pratica e non "
-"dovrebbe essere usata. I cookie che \"ricordano\" solo il nome dell'utente e "
-"riempiono la form di accesso con quel nome utente per praticità, non "
-"comportano rischi."
+msgid "To summarize: While everyone is doing it, persistent \"Remember Me\" cookies with automatic authentication are a bad practice and should not be used. Cookies that \"remember\" only the users login name, and fill out the login form with that username as a convenience, are not an issue."
+msgstr "In definitiva: benché tutti lo stiano facendo, il cookie \"Ricordami su questo computer\" con l'autenticazione automatica è un cattiva pratica e non dovrebbe essere usata. I cookie che \"ricordano\" solo il nome dell'utente e riempiono la form di accesso con quel nome utente per praticità, non comportano rischi."
#. Tag: para
#: Security.xml:308
#, no-c-format
-msgid ""
-"To enable the remember me feature for the default (safe, username only) "
-"mode, no special configuration is required. In your login form, simply bind "
-"the remember me checkbox to <literal>rememberMe.enabled</literal>, like in "
-"the following example:"
-msgstr ""
-"Per abilitare la funzione \"Ricordami su questo computer\" nella modalità di "
-"default (quella sicura, con il solo nome utente) non è richiesta alcuna "
-"speciale configurazione. Basta collegare un checkbox \"Ricordami su questo "
-"computer\" a <literal>rememberMe.enabled</literal> nella form di accesso, "
-"come nel seguente esempio:"
+msgid "To enable the remember me feature for the default (safe, username only) mode, no special configuration is required. In your login form, simply bind the remember me checkbox to <literal>rememberMe.enabled</literal>, like in the following example:"
+msgstr "Per abilitare la funzione \"Ricordami su questo computer\" nella modalità di default (quella sicura, con il solo nome utente) non è richiesta alcuna speciale configurazione. Basta collegare un checkbox \"Ricordami su questo computer\" a <literal>rememberMe.enabled</literal> nella form di accesso, come nel seguente esempio:"
#. Tag: programlisting
#: Security.xml:314
@@ -791,14 +464,12 @@
" \n"
" <div>\n"
" <h:outputLabel for=\"password\" value=\"Password\"/>\n"
-" <h:inputSecret id=\"password\" value=\"#{credentials.password}\" "
-"redisplay=\"true\"/>\n"
+" <h:inputSecret id=\"password\" value=\"#{credentials.password}\" redisplay=\"true\"/>\n"
" </div> \n"
" \n"
" <div class=\"loginRow\">\n"
" <h:outputLabel for=\"rememberMe\" value=\"Remember me\"/>\n"
-" <h:selectBooleanCheckbox id=\"rememberMe\" value=\"#{rememberMe.enabled}"
-"\"/>\n"
+" <h:selectBooleanCheckbox id=\"rememberMe\" value=\"#{rememberMe.enabled}\"/>\n"
" </div>]]>"
msgstr ""
"<![CDATA[ <div>\n"
@@ -808,56 +479,31 @@
" \n"
" <div>\n"
" <h:outputLabel for=\"password\" value=\"Password\"/>\n"
-" <h:inputSecret id=\"password\" value=\"#{credentials.password}\" "
-"redisplay=\"true\"/>\n"
+" <h:inputSecret id=\"password\" value=\"#{credentials.password}\" redisplay=\"true\"/>\n"
" </div> \n"
" \n"
" <div class=\"loginRow\">\n"
-" <h:outputLabel for=\"rememberMe\" value=\"Ricordami su questo computer\"/"
-">\n"
-" <h:selectBooleanCheckbox id=\"rememberMe\" value=\"#{rememberMe.enabled}"
-"\"/>\n"
+" <h:outputLabel for=\"rememberMe\" value=\"Ricordami su questo computer\"/>\n"
+" <h:selectBooleanCheckbox id=\"rememberMe\" value=\"#{rememberMe.enabled}\"/>\n"
" </div>]]>"
#. Tag: title
#: Security.xml:317
#, no-c-format
msgid "Token-based Remember-me Authentication"
-msgstr ""
-"La modalità di autenticazione \"Ricordami su questo computer\" basata sul "
-"token"
+msgstr "La modalità di autenticazione \"Ricordami su questo computer\" basata sul token"
#. Tag: para
#: Security.xml:319
#, no-c-format
-msgid ""
-"To use the automatic, token-based mode of the remember me feature, you must "
-"first configure a token store. The most common scenario is to store these "
-"authentication tokens within a database (which Seam supports), however it is "
-"possible to implement your own token store by implementing the <literal>org."
-"jboss.seam.security.TokenStore</literal> interface. This section will assume "
-"you will be using the provided <literal>JpaTokenStore</literal> "
-"implementation to store authentication tokens inside a database table."
-msgstr ""
-"Per usare la modalità automatica, attraverso il token, della funzione "
-"\"Ricordami su questo computer\", occorre prima configurare la "
-"memorizzazione del token. Nello scenario più comune (gestito da Seam) questi "
-"token di autenticazione vengono memorizzati nel database, comunque è "
-"possibile implementare la propria memorizzazione dei token implementando "
-"l'interfaccia <literal>org.jboss.seam.security.TokenStore</literal>. In "
-"questo paragrafo si suppone che per la memorizzazione dei token in una "
-"tabella del database si stia usando l'implementazione fornita con Seam "
-"<literal>JpaTokenStore</literal>."
+msgid "To use the automatic, token-based mode of the remember me feature, you must first configure a token store. The most common scenario is to store these authentication tokens within a database (which Seam supports), however it is possible to implement your own token store by implementing the <literal>org.jboss.seam.security.TokenStore</literal> interface. This section will assume you will be using the provided <literal>JpaTokenStore</literal> implementation to store authentication tokens inside a database table."
+msgstr "Per usare la modalità automatica, attraverso il token, della funzione \"Ricordami su questo computer\", occorre prima configurare la memorizzazione del token. Nello scenario più comune (gestito da Seam) questi token di autenticazione vengono memorizzati nel database, comunque è possibile implementare la propria memorizzazione dei token implementando l'interfaccia <literal>org.jboss.seam.security.TokenStore</literal>. In questo paragrafo si suppone che per la memorizzazione dei token in una tabella del database si stia usando l'implementazione fornita con Seam <literal>JpaTokenStore</literal>."
#. Tag: para
#: Security.xml:327
#, no-c-format
-msgid ""
-"The first step is to create a new Entity which will contain the tokens. The "
-"following example shows a possible structure that you may use:"
-msgstr ""
-"Il primo passo consiste nel creare una nuova entità che conterrà i token. Il "
-"seguente esempio mostra una possibile struttura che può essere usata:"
+msgid "The first step is to create a new Entity which will contain the tokens. The following example shows a possible structure that you may use:"
+msgstr "Il primo passo consiste nel creare una nuova entità che conterrà i token. Il seguente esempio mostra una possibile struttura che può essere usata:"
#. Tag: programlisting
#: Security.xml:332
@@ -934,60 +580,32 @@
#. Tag: para
#: Security.xml:334
#, no-c-format
-msgid ""
-"As you can see from this listing, a couple of special annotations, "
-"<literal>@TokenUsername</literal> and <literal>@TokenValue</literal> are "
-"used to configure the username and token properties of the entity. These "
-"annotations are required for the entity that will contain the authentication "
-"tokens."
-msgstr ""
-"Come si può vedere dal listato, vengono usate un paio di annotazioni "
-"speciali, <literal>@TokenUsername</literal> e <literal>@TokenValue</"
-"literal>, per configurare le proprietà token e nome utente dell'entità. "
-"Queste annotazioni sono richieste per l'entità che conterrà i token di "
-"autenticazione."
+msgid "As you can see from this listing, a couple of special annotations, <literal>@TokenUsername</literal> and <literal>@TokenValue</literal> are used to configure the username and token properties of the entity. These annotations are required for the entity that will contain the authentication tokens."
+msgstr "Come si può vedere dal listato, vengono usate un paio di annotazioni speciali, <literal>@TokenUsername</literal> e <literal>@TokenValue</literal>, per configurare le proprietà token e nome utente dell'entità. Queste annotazioni sono richieste per l'entità che conterrà i token di autenticazione."
#. Tag: para
#: Security.xml:340
#, no-c-format
-msgid ""
-"The next step is to configure <literal>JpaTokenStore</literal> to use this "
-"entity bean to store and retrieve authentication tokens. This is done in "
-"<literal>components.xml</literal> by specifying the <literal>token-class</"
-"literal> attribute:"
-msgstr ""
-"Il passo successivo consiste nel configurare il <literal>JpaTokenStore</"
-"literal> per usare questo entity bean per memorizzare e recuperare i token "
-"di autenticazione. Ciò viene fatto in <literal>components.xml</literal> "
-"specificando l'attributo <literal>token-class</literal>."
+msgid "The next step is to configure <literal>JpaTokenStore</literal> to use this entity bean to store and retrieve authentication tokens. This is done in <literal>components.xml</literal> by specifying the <literal>token-class</literal> attribute:"
+msgstr "Il passo successivo consiste nel configurare il <literal>JpaTokenStore</literal> per usare questo entity bean per memorizzare e recuperare i token di autenticazione. Ciò viene fatto in <literal>components.xml</literal> specificando l'attributo <literal>token-class</literal>."
#. Tag: programlisting
#: Security.xml:346
#, no-c-format
msgid ""
"<![CDATA[\n"
-" <security:jpa-token-store token-class=\"org.jboss.seam.example.seamspace."
-"AuthenticationToken\"/> \n"
+" <security:jpa-token-store token-class=\"org.jboss.seam.example.seamspace.AuthenticationToken\"/> \n"
" ]]>"
msgstr ""
"<![CDATA[\n"
-" <security:jpa-token-store token-class=\"org.jboss.seam.example.seamspace."
-"AuthenticationToken\"/> \n"
+" <security:jpa-token-store token-class=\"org.jboss.seam.example.seamspace.AuthenticationToken\"/> \n"
" ]]>"
#. Tag: para
#: Security.xml:348
#, no-c-format
-msgid ""
-"Once this is done, the last thing to do is to configure the "
-"<literal>RememberMe</literal> component in <literal>components.xml</literal> "
-"also. Its <literal>mode</literal> should be set to <literal>autoLogin</"
-"literal>:"
-msgstr ""
-"Una volta fatto questo, l'ultima cosa da fare è configurare anche il "
-"componente <literal>RememberMe</literal> in <literal>components.xml</"
-"literal>. La sua proprietà <literal>mode</literal> dovrà essere impostata a "
-"<literal>autoLogin</literal>:"
+msgid "Once this is done, the last thing to do is to configure the <literal>RememberMe</literal> component in <literal>components.xml</literal> also. Its <literal>mode</literal> should be set to <literal>autoLogin</literal>:"
+msgstr "Una volta fatto questo, l'ultima cosa da fare è configurare anche il componente <literal>RememberMe</literal> in <literal>components.xml</literal>. La sua proprietà <literal>mode</literal> dovrà essere impostata a <literal>autoLogin</literal>:"
#. Tag: programlisting
#: Security.xml:353
@@ -1002,25 +620,14 @@
#. Tag: para
#: Security.xml:355
#, no-c-format
-msgid ""
-"That is all that is required - automatic authentication will now occur for "
-"users revisiting your site (as long as they check the \"remember me\" "
-"checkbox)."
-msgstr ""
-"Questo è tutto ciò che è necessario. L'autenticazione automatica degli "
-"utenti avverrà quando torneranno a visitare il sito (purché abbiano "
-"impostato il checkbox \"Ricordami su questo computer\")."
+msgid "That is all that is required - automatic authentication will now occur for users revisiting your site (as long as they check the \"remember me\" checkbox)."
+msgstr "Questo è tutto ciò che è necessario. L'autenticazione automatica degli utenti avverrà quando torneranno a visitare il sito (purché abbiano impostato il checkbox \"Ricordami su questo computer\")."
#. Tag: para
#: Security.xml:360
#, no-c-format
-msgid ""
-"To ensure that users are automatically authenticated when returning to the "
-"site, the following section should be placed in components.xml:"
-msgstr ""
-"Per essere sicuri che gli utenti siano autenticati automaticamente quando "
-"tornano sul sito, il seguente codice deve essere posizionato in "
-"<literal>components.xml</literal>:"
+msgid "To ensure that users are automatically authenticated when returning to the site, the following section should be placed in components.xml:"
+msgstr "Per essere sicuri che gli utenti siano autenticati automaticamente quando tornano sul sito, il seguente codice deve essere posizionato in <literal>components.xml</literal>:"
#. Tag: programlisting
#: Security.xml:365
@@ -1051,60 +658,26 @@
#. Tag: para
#: Security.xml:374
#, no-c-format
-msgid ""
-"To prevent users from receiving the default error page in response to a "
-"security error, it's recommended that <literal>pages.xml</literal> is "
-"configured to redirect security errors to a more \"pretty\" page. The two "
-"main types of exceptions thrown by the security API are:"
-msgstr ""
-"Per prevenire il fatto che gli utenti ricevano la pagina di errore di "
-"default in risposta ad un errore di sicurezza, si raccomanda che in "
-"<literal>pages.xml</literal> sia configurata una redirezione degli errori di "
-"sicurezza ad una pagina più \"carina\". I due principali tipi di eccezione "
-"lanciati dalle API della sicurezza sono:"
+msgid "To prevent users from receiving the default error page in response to a security error, it's recommended that <literal>pages.xml</literal> is configured to redirect security errors to a more \"pretty\" page. The two main types of exceptions thrown by the security API are:"
+msgstr "Per prevenire il fatto che gli utenti ricevano la pagina di errore di default in risposta ad un errore di sicurezza, si raccomanda che in <literal>pages.xml</literal> sia configurata una redirezione degli errori di sicurezza ad una pagina più \"carina\". I due principali tipi di eccezione lanciati dalle API della sicurezza sono:"
#. Tag: para
#: Security.xml:382
#, no-c-format
-msgid ""
-"<literal>NotLoggedInException</literal> - This exception is thrown if the "
-"user attempts to access a restricted action or page when they are not logged "
-"in."
-msgstr ""
-"<literal>NotLoggedInException</literal> - Questa eccezione viene lanciata se "
-"l'utente tenta di accedere ad un'azione o ad una pagina protetta quando non "
-"ha fatto l'accesso."
+msgid "<literal>NotLoggedInException</literal> - This exception is thrown if the user attempts to access a restricted action or page when they are not logged in."
+msgstr "<literal>NotLoggedInException</literal> - Questa eccezione viene lanciata se l'utente tenta di accedere ad un'azione o ad una pagina protetta quando non ha fatto l'accesso."
#. Tag: para
#: Security.xml:388
#, no-c-format
-msgid ""
-"<literal>AuthorizationException</literal> - This exception is only thrown if "
-"the user is already logged in, and they have attempted to access a "
-"restricted action or page for which they do not have the necessary "
-"privileges."
-msgstr ""
-"<literal>AuthorizationException</literal> - Questa eccezione viene lanciata "
-"solo se l'utente ha già fatto l'accesso e ha tentato di accedere ad "
-"un'azione o ad una pagina per la quale non ha i privilegi necessari."
+msgid "<literal>AuthorizationException</literal> - This exception is only thrown if the user is already logged in, and they have attempted to access a restricted action or page for which they do not have the necessary privileges."
+msgstr "<literal>AuthorizationException</literal> - Questa eccezione viene lanciata solo se l'utente ha già fatto l'accesso e ha tentato di accedere ad un'azione o ad una pagina per la quale non ha i privilegi necessari."
#. Tag: para
#: Security.xml:396
#, no-c-format
-msgid ""
-"In the case of a <literal>NotLoggedInException</literal>, it is recommended "
-"that the user is redirected to either a login or registration page so that "
-"they can log in. For an <literal>AuthorizationException</literal>, it may be "
-"useful to redirect the user to an error page. Here's an example of a "
-"<literal>pages.xml</literal> file that redirects both of these security "
-"exceptions:"
-msgstr ""
-"Nel caso della <literal>NotLoggedInException</literal>, si raccomanda che "
-"l'utente venga rediretto o sulla pagina di accesso o su quella di "
-"registrazione, così che possa accedere. Per una "
-"<literal>AuthorizationException</literal>, può essere utile redirigere "
-"l'utente su una pagina di errore. Ecco un esempio di un <literal>pages.xml</"
-"literal> che redirige entrambe queste eccezioni:"
+msgid "In the case of a <literal>NotLoggedInException</literal>, it is recommended that the user is redirected to either a login or registration page so that they can log in. For an <literal>AuthorizationException</literal>, it may be useful to redirect the user to an error page. Here's an example of a <literal>pages.xml</literal> file that redirects both of these security exceptions:"
+msgstr "Nel caso della <literal>NotLoggedInException</literal>, si raccomanda che l'utente venga rediretto o sulla pagina di accesso o su quella di registrazione, così che possa accedere. Per una <literal>AuthorizationException</literal>, può essere utile redirigere l'utente su una pagina di errore. Ecco un esempio di un <literal>pages.xml</literal> che redirige entrambe queste eccezioni:"
#. Tag: programlisting
#: Security.xml:403
@@ -1123,8 +696,7 @@
" <exception class=\"org.jboss.seam.security.AuthorizationException\">\n"
" <end-conversation/>\n"
" <redirect view-id=\"/security_error.xhtml\">\n"
-" <message>You do not have the necessary security privileges to "
-"perform this action.</message>\n"
+" <message>You do not have the necessary security privileges to perform this action.</message>\n"
" </redirect>\n"
" </exception>\n"
"\n"
@@ -1136,16 +708,14 @@
"\n"
" <exception class=\"org.jboss.seam.security.NotLoggedInException\">\n"
" <redirect view-id=\"/login.xhtml\">\n"
-" <message>Per eseguire questa operazione devi prima eseguire "
-"l'accesso</message>\n"
+" <message>Per eseguire questa operazione devi prima eseguire l'accesso</message>\n"
" </redirect>\n"
" </exception>\n"
"\n"
" <exception class=\"org.jboss.seam.security.AuthorizationException\">\n"
" <end-conversation/>\n"
" <redirect view-id=\"/security_error.xhtml\">\n"
-" <message>Non disponi dei privilegi di sicurezza necessari per "
-"eseguire questa operazione.</message>\n"
+" <message>Non disponi dei privilegi di sicurezza necessari per eseguire questa operazione.</message>\n"
" </redirect>\n"
" </exception>\n"
"\n"
@@ -1154,14 +724,8 @@
#. Tag: para
#: Security.xml:405
#, no-c-format
-msgid ""
-"Most web applications require even more sophisticated handling of login "
-"redirection, so Seam includes some special functionality for handling this "
-"problem."
-msgstr ""
-"La maggior parte delle applicazioni web richiede una gestione più "
-"sofisticata della redirezione sulla pagina di accesso, perciò Seam include "
-"alcune funzionalità speciali per gestire questo problema:"
+msgid "Most web applications require even more sophisticated handling of login redirection, so Seam includes some special functionality for handling this problem."
+msgstr "La maggior parte delle applicazioni web richiede una gestione più sofisticata della redirezione sulla pagina di accesso, perciò Seam include alcune funzionalità speciali per gestire questo problema:"
#. Tag: title
#: Security.xml:413
@@ -1172,14 +736,8 @@
#. Tag: para
#: Security.xml:415
#, no-c-format
-msgid ""
-"You can ask Seam to redirect the user to a login screen when an "
-"unauthenticated user tries to access a particular view (or wildcarded view "
-"id) as follows:"
-msgstr ""
-"E' possibile chiedere a Seam di redirigere l'utente su una pagina di accesso "
-"quando un utente non autenticato tenta di accedere ad una particolare view "
-"(o ad una view il cui id corrisponda ad una wildcard), nel modo seguente:"
+msgid "You can ask Seam to redirect the user to a login screen when an unauthenticated user tries to access a particular view (or wildcarded view id) as follows:"
+msgstr "E' possibile chiedere a Seam di redirigere l'utente su una pagina di accesso quando un utente non autenticato tenta di accedere ad una particolare view (o ad una view il cui id corrisponda ad una wildcard), nel modo seguente:"
#. Tag: programlisting
#: Security.xml:420
@@ -1204,33 +762,14 @@
#. Tag: para
#: Security.xml:423
#, no-c-format
-msgid ""
-"This is less of a blunt instrument than the exception handler shown above, "
-"but should probably be used in conjunction with it."
-msgstr ""
-"Non è che una banale semplificazione rispetto alla gestione dell'eccezione "
-"illustrata prima, ma probabilmente dovrà essere usata insieme ad essa."
+msgid "This is less of a blunt instrument than the exception handler shown above, but should probably be used in conjunction with it."
+msgstr "Non è che una banale semplificazione rispetto alla gestione dell'eccezione illustrata prima, ma probabilmente dovrà essere usata insieme ad essa."
#. Tag: para
#: Security.xml:429
#, no-c-format
-msgid ""
-"After the user logs in, we want to automatically send them back where they "
-"came from, so they can retry the action that required logging in. If you add "
-"the following event listeners to <literal>components.xml</literal>, attempts "
-"to access a restricted view while not logged in will be remembered, so that "
-"upon the user successfully logging in they will be redirected to the "
-"originally requested view, with any page parameters that existed in the "
-"original request."
-msgstr ""
-"Dopo che l'utente ha eseguito l'accesso, lo si vorrà rimandare "
-"automaticamente indietro da dove è venuto, così che potrà riprovare ad "
-"eseguire l'azione che richiedeva l'accesso. Se si aggiungono i seguenti "
-"listener in <literal>components.xml</literal>, i tentativi di accesso ad una "
-"view protetta eseguiti quando non si è fatto l'accesso verranno ricordati "
-"così, dopo che l'utente ha eseguito l'accesso, può essere rediretto alla "
-"view che aveva originariamente richiesto, compresi tutti i parametri di "
-"pagina che esistevano nella richiesta originale."
+msgid "After the user logs in, we want to automatically send them back where they came from, so they can retry the action that required logging in. If you add the following event listeners to <literal>components.xml</literal>, attempts to access a restricted view while not logged in will be remembered, so that upon the user successfully logging in they will be redirected to the originally requested view, with any page parameters that existed in the original request."
+msgstr "Dopo che l'utente ha eseguito l'accesso, lo si vorrà rimandare automaticamente indietro da dove è venuto, così che potrà riprovare ad eseguire l'azione che richiedeva l'accesso. Se si aggiungono i seguenti listener in <literal>components.xml</literal>, i tentativi di accesso ad una view protetta eseguiti quando non si è fatto l'accesso verranno ricordati così, dopo che l'utente ha eseguito l'accesso, può essere rediretto alla view che aveva originariamente richiesto, compresi tutti i parametri di pagina che esistevano nella richiesta originale."
#. Tag: programlisting
#: Security.xml:438
@@ -1255,14 +794,8 @@
#. Tag: para
#: Security.xml:440
#, no-c-format
-msgid ""
-"Note that login redirection is implemented as a conversation-scoped "
-"mechanism, so don't end the conversation in your <literal>authenticate()</"
-"literal> method."
-msgstr ""
-"Notare che la redirezione dopo l'accesso è implementata con un meccanismo "
-"con visibilità sulla conversazione, perciò occorre evitare di terminare la "
-"conversazione nel metodo <literal>authenticate()</literal>."
+msgid "Note that login redirection is implemented as a conversation-scoped mechanism, so don't end the conversation in your <literal>authenticate()</literal> method."
+msgstr "Notare che la redirezione dopo l'accesso è implementata con un meccanismo con visibilità sulla conversazione, perciò occorre evitare di terminare la conversazione nel metodo <literal>authenticate()</literal>."
#. Tag: title
#: Security.xml:448
@@ -1273,17 +806,8 @@
#. Tag: para
#: Security.xml:450
#, no-c-format
-msgid ""
-"Although not recommended for use unless absolutely necessary, Seam provides "
-"means for authenticating using either HTTP Basic or HTTP Digest (RFC 2617) "
-"methods. To use either form of authentication, the <literal>authentication-"
-"filter</literal> component must be enabled in components.xml:"
-msgstr ""
-"Benché l'uso non sia raccomandato a meno che non sia assolutamente "
-"necessario, Seam fornisce gli strumenti per l'autenticazione in HTTP sia con "
-"metodo Basic che Digest (RFC 2617). Per usare entrambe le forme di "
-"autentifica, occorre abilitare il componente <literal>authentication-filter</"
-"literal> in <literal>components.xml</literal>:"
+msgid "Although not recommended for use unless absolutely necessary, Seam provides means for authenticating using either HTTP Basic or HTTP Digest (RFC 2617) methods. To use either form of authentication, the <literal>authentication-filter</literal> component must be enabled in components.xml:"
+msgstr "Benché l'uso non sia raccomandato a meno che non sia assolutamente necessario, Seam fornisce gli strumenti per l'autenticazione in HTTP sia con metodo Basic che Digest (RFC 2617). Per usare entrambe le forme di autentifica, occorre abilitare il componente <literal>authentication-filter</literal> in <literal>components.xml</literal>:"
#. Tag: programlisting
#: Security.xml:456
@@ -1300,43 +824,26 @@
#. Tag: para
#: Security.xml:458
#, no-c-format
-msgid ""
-"To enable the filter for basic authentication, set <literal>auth-type</"
-"literal> to <literal>basic</literal>, or for digest authentication, set it "
-"to <literal>digest</literal>. If using digest authentication, the "
-"<literal>key</literal> and <literal>realm</literal> must also be set:"
-msgstr ""
-"Per abilitare il filtro per l'autenticazione Basic impostare <literal>auth-"
-"type</literal> a <literal>basic</literal>, oppure per l'autentifica Digest, "
-"impostarlo a <literal>digest</literal>. Se si usa l'autentifica Digest, "
-"occorre impostare anche un valore per <literal>key</literal> e "
-"<literal>realm</literal>:"
+msgid "To enable the filter for basic authentication, set <literal>auth-type</literal> to <literal>basic</literal>, or for digest authentication, set it to <literal>digest</literal>. If using digest authentication, the <literal>key</literal> and <literal>realm</literal> must also be set:"
+msgstr "Per abilitare il filtro per l'autenticazione Basic impostare <literal>auth-type</literal> a <literal>basic</literal>, oppure per l'autentifica Digest, impostarlo a <literal>digest</literal>. Se si usa l'autentifica Digest, occorre impostare anche un valore per <literal>key</literal> e <literal>realm</literal>:"
#. Tag: programlisting
#: Security.xml:464
#, no-c-format
msgid ""
"<![CDATA[\n"
-" <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"digest\" key="
-"\"AA3JK34aSDlkj\" realm=\"My App\"/>\n"
+" <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"digest\" key=\"AA3JK34aSDlkj\" realm=\"My App\"/>\n"
" ]]>"
msgstr ""
"<![CDATA[\n"
-" <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"digest\" key="
-"\"AA3JK34aSDlkj\" realm=\"La mia Applicazione\"/>\n"
+" <web:authentication-filter url-pattern=\"*.seam\" auth-type=\"digest\" key=\"AA3JK34aSDlkj\" realm=\"La mia Applicazione\"/>\n"
" ]]>"
#. Tag: para
#: Security.xml:466
#, no-c-format
-msgid ""
-"The <literal>key</literal> can be any String value. The <literal>realm</"
-"literal> is the name of the authentication realm that is presented to the "
-"user when they authenticate."
-msgstr ""
-"<literal>key</literal> può essere un qualunque valore stringa. "
-"<literal>realm</literal> è il nome del dominio di autenticazione che viene "
-"presentato all'utente quando si autentica."
+msgid "The <literal>key</literal> can be any String value. The <literal>realm</literal> is the name of the authentication realm that is presented to the user when they authenticate."
+msgstr "<literal>key</literal> può essere un qualunque valore stringa. <literal>realm</literal> è il nome del dominio di autenticazione che viene presentato all'utente quando si autentica."
#. Tag: title
#: Security.xml:472
@@ -1347,18 +854,8 @@
#. Tag: para
#: Security.xml:474
#, no-c-format
-msgid ""
-"If using digest authentication, your authenticator class should extend the "
-"abstract class <literal>org.jboss.seam.security.digest.DigestAuthenticator</"
-"literal>, and use the <literal>validatePassword()</literal> method to "
-"validate the user's plain text password against the digest request. Here is "
-"an example:"
-msgstr ""
-"Se si usa l'autenticazione Digest, la classe authenticator deve estendere la "
-"classe astratta <literal>org.jboss.seam.security.digest.DigestAuthenticator</"
-"literal> e usare il metodo <literal>validatePassword()</literal> per "
-"validare la password in chiaro dell'utente con la richiesta Digest. Ecco un "
-"esempio:"
+msgid "If using digest authentication, your authenticator class should extend the abstract class <literal>org.jboss.seam.security.digest.DigestAuthenticator</literal>, and use the <literal>validatePassword()</literal> method to validate the user's plain text password against the digest request. Here is an example:"
+msgstr "Se si usa l'autenticazione Digest, la classe authenticator deve estendere la classe astratta <literal>org.jboss.seam.security.digest.DigestAuthenticator</literal> e usare il metodo <literal>validatePassword()</literal> per validare la password in chiaro dell'utente con la richiesta Digest. Ecco un esempio:"
#. Tag: programlisting
#: Security.xml:481
@@ -1411,12 +908,8 @@
#. Tag: para
#: Security.xml:489
#, no-c-format
-msgid ""
-"This section explores some of the advanced features provided by the security "
-"API for addressing more complex security requirements."
-msgstr ""
-"Questo paragrafo esplora alcune delle caratteristiche avanzate fornite dalle "
-"API di sicurezza per affrontare requisiti di sicurezza più complessi."
+msgid "This section explores some of the advanced features provided by the security API for addressing more complex security requirements."
+msgstr "Questo paragrafo esplora alcune delle caratteristiche avanzate fornite dalle API di sicurezza per affrontare requisiti di sicurezza più complessi."
#. Tag: title
#: Security.xml:495
@@ -1427,23 +920,8 @@
#. Tag: para
#: Security.xml:497
#, no-c-format
-msgid ""
-"If you would rather not use the simplified JAAS configuration provided by "
-"the Seam Security API, you may instead delegate to the default system JAAS "
-"configuration by providing a <literal>jaas-config-name</literal> property in "
-"<literal>components.xml</literal>. For example, if you are using JBoss AS "
-"and wish to use the <literal>other</literal> policy (which uses the "
-"<literal>UsersRolesLoginModule</literal> login module provided by JBoss AS), "
-"then the entry in <literal>components.xml</literal> would look like this:"
-msgstr ""
-"Se non si vuole usare la configurazione JAAS semplificata fornita dalle API "
-"di sicurezza di Seam, è possibile delegare alla configurazione JAAS di "
-"default del sistema fornendo una proprietà <literal>jaas-config-name</"
-"literal> in <literal>components.xml</literal>. Ad esempio, se si sta usando "
-"JBoss AS e si vuole usare la politica <literal>other</literal> (la quale usa "
-"il modulo di login <literal>UsersRolesLoginModule</literal> fornito da JBoss "
-"AS), allora la voce da mettere in <literal>components.xml</literal> sarà "
-"simile a questa:"
+msgid "If you would rather not use the simplified JAAS configuration provided by the Seam Security API, you may instead delegate to the default system JAAS configuration by providing a <literal>jaas-config-name</literal> property in <literal>components.xml</literal>. For example, if you are using JBoss AS and wish to use the <literal>other</literal> policy (which uses the <literal>UsersRolesLoginModule</literal> login module provided by JBoss AS), then the entry in <literal>components.xml</literal> would look like this:"
+msgstr "Se non si vuole usare la configurazione JAAS semplificata fornita dalle API di sicurezza di Seam, è possibile delegare alla configurazione JAAS di default del sistema fornendo una proprietà <literal>jaas-config-name</literal> in <literal>components.xml</literal>. Ad esempio, se si sta usando JBoss AS e si vuole usare la politica <literal>other</literal> (la quale usa il modulo di login <literal>UsersRolesLoginModule</literal> fornito da JBoss AS), allora la voce da mettere in <literal>components.xml</literal> sarà simile a questa:"
#. Tag: programlisting
#: Security.xml:505
@@ -1454,17 +932,8 @@
#. Tag: para
#: Security.xml:507
#, no-c-format
-msgid ""
-"Please keep in mind that doing this does not mean that your user will be "
-"authenticated in whichever container your Seam application is deployed in. "
-"It merely instructs Seam Security to authenticate itself using the "
-"configured JAAS security policy."
-msgstr ""
-"E' il caso di tenere ben presente che facendo in questo modo non significa "
-"che l'utente verrà autenticato in qualsiasi container in cui venga eseguita "
-"l'applicazione Seam. Questa configurazione istruisce semplicemente la "
-"sicurezza di Seam ad autenticarsi usando le politiche di sicurezza JAAS "
-"configurate."
+msgid "Please keep in mind that doing this does not mean that your user will be authenticated in whichever container your Seam application is deployed in. It merely instructs Seam Security to authenticate itself using the configured JAAS security policy."
+msgstr "E' il caso di tenere ben presente che facendo in questo modo non significa che l'utente verrà autenticato in qualsiasi container in cui venga eseguita l'applicazione Seam. Questa configurazione istruisce semplicemente la sicurezza di Seam ad autenticarsi usando le politiche di sicurezza JAAS configurate."
#. Tag: title
#: Security.xml:517
@@ -1475,38 +944,14 @@
#. Tag: para
#: Security.xml:519
#, no-c-format
-msgid ""
-"Identity Management provides a standard API for the management of a Seam "
-"application's users and roles, regardless of which identity store (database, "
-"LDAP, etc) is used on the backend. At the center of the Identity Management "
-"API is the <literal>identityManager</literal> component, which provides all "
-"the methods for creating, modifying and deleting users, granting and "
-"revoking roles, changing passwords, enabling and disabling user accounts, "
-"authenticating users and listing users and roles."
-msgstr ""
-"La gestione delle identità fornisce un'API standard per la gestione degli "
-"utenti e dei ruoli di una applicazione Seam, a prescindere da quale "
-"dispositivo di memorizzazione delle identità è usato internamente (database, "
-"LDAP, ecc). Al centro delle API per la gestione delle identità c'è il "
-"componente <literal>identityManager</literal>, il quale fornisce tutti i "
-"metodi per creare, modificare e cancellare utenti, concedere e revocare "
-"ruoli, cambiare le password, abilitare e disabilitare gli utenti, "
-"autenticare gli utenti ed elencare utenti e ruoli."
+msgid "Identity Management provides a standard API for the management of a Seam application's users and roles, regardless of which identity store (database, LDAP, etc) is used on the backend. At the center of the Identity Management API is the <literal>identityManager</literal> component, which provides all the methods for creating, modifying and deleting users, granting and revoking roles, changing passwords, enabling and disabling user accounts, authenticating users and listing users and roles."
+msgstr "La gestione delle identità fornisce un'API standard per la gestione degli utenti e dei ruoli di una applicazione Seam, a prescindere da quale dispositivo di memorizzazione delle identità è usato internamente (database, LDAP, ecc). Al centro delle API per la gestione delle identità c'è il componente <literal>identityManager</literal>, il quale fornisce tutti i metodi per creare, modificare e cancellare utenti, concedere e revocare ruoli, cambiare le password, abilitare e disabilitare gli utenti, autenticare gli utenti ed elencare utenti e ruoli."
#. Tag: para
#: Security.xml:527
#, no-c-format
-msgid ""
-"Before it may be used, the <literal>identityManager</literal> must first be "
-"configured with one or more <literal>IdentityStore</literal>s. These "
-"components do the actual work of interacting with the backend security "
-"provider, whether it be a database, LDAP server, or something else."
-msgstr ""
-"Prima di essere usato, <literal>identityManager</literal> deve essere "
-"configurato con uno o più <literal>IdentityStore</literal>. Questi "
-"componenti fanno il vero lavoro di interagire con il fornitore di sicurezza "
-"sottostante, sia che si tratti di un database, di un server LDAP o di "
-"qualcos'altro."
+msgid "Before it may be used, the <literal>identityManager</literal> must first be configured with one or more <literal>IdentityStore</literal>s. These components do the actual work of interacting with the backend security provider, whether it be a database, LDAP server, or something else."
+msgstr "Prima di essere usato, <literal>identityManager</literal> deve essere configurato con uno o più <literal>IdentityStore</literal>. Questi componenti fanno il vero lavoro di interagire con il fornitore di sicurezza sottostante, sia che si tratti di un database, di un server LDAP o di qualcos'altro."
#. Tag: title
#: Security.xml:543
@@ -1517,70 +962,20 @@
#. Tag: para
#: Security.xml:545
#, no-c-format
-msgid ""
-"The <literal>identityManager</literal> component allows for separate "
-"identity stores to be configured for authentication and authorization "
-"operations. This means that it is possible for users to be authenticated "
-"against one identity store, for example an LDAP directory, yet have their "
-"roles loaded from another identity store, such as a relational database."
-msgstr ""
-"Il componente <literal>identityManager</literal> consente di separare i "
-"dispositivi di memorizzazione configurati per le operazioni di "
-"autenticazione e di autorizzazione. Ciò significa che è possibile "
-"autenticare gli utenti tramite un dispositivo di memorizzazione, ad esempio "
-"una directory LDAP, e poi avere i loro ruoli caricati da un altro "
-"dispositivo di memorizzazione, come un database relazionale."
+msgid "The <literal>identityManager</literal> component allows for separate identity stores to be configured for authentication and authorization operations. This means that it is possible for users to be authenticated against one identity store, for example an LDAP directory, yet have their roles loaded from another identity store, such as a relational database."
+msgstr "Il componente <literal>identityManager</literal> consente di separare i dispositivi di memorizzazione configurati per le operazioni di autenticazione e di autorizzazione. Ciò significa che è possibile autenticare gli utenti tramite un dispositivo di memorizzazione, ad esempio una directory LDAP, e poi avere i loro ruoli caricati da un altro dispositivo di memorizzazione, come un database relazionale."
#. Tag: para
#: Security.xml:552
#, no-c-format
-msgid ""
-"Seam provides two <literal>IdentityStore</literal> implementations out of "
-"the box; <literal>JpaIdentityStore</literal> uses a relational database to "
-"store user and role information, and is the default identity store that is "
-"used if nothing is explicitly configured in the <literal>identityManager</"
-"literal> component. The other implementation that is provided is "
-"<literal>LdapIdentityStore</literal>, which uses an LDAP directory to store "
-"users and roles."
-msgstr ""
-"Seam fornisce due implementazioni <literal>IdentityStore</literal> già "
-"pronte. <literal>JpaIdentityStore</literal> usa un database relazionale per "
-"memorizzare le informazioni su utenti e ruoli ed è il dispositivo di "
-"memorizzazione di identità di default che viene usato se non viene "
-"configurato niente in modo esplicito nel componente "
-"<literal>identityManager</literal>. L'altra implementazione fornita è "
-"<literal>LdapIdentityStore</literal>, che usa una directory LDAP per "
-"memorizzare utenti e ruoli."
+msgid "Seam provides two <literal>IdentityStore</literal> implementations out of the box; <literal>JpaIdentityStore</literal> uses a relational database to store user and role information, and is the default identity store that is used if nothing is explicitly configured in the <literal>identityManager</literal> component. The other implementation that is provided is <literal>LdapIdentityStore</literal>, which uses an LDAP directory to store users and roles."
+msgstr "Seam fornisce due implementazioni <literal>IdentityStore</literal> già pronte. <literal>JpaIdentityStore</literal> usa un database relazionale per memorizzare le informazioni su utenti e ruoli ed è il dispositivo di memorizzazione di identità di default che viene usato se non viene configurato niente in modo esplicito nel componente <literal>identityManager</literal>. L'altra implementazione fornita è <literal>LdapIdentityStore</literal>, che usa una directory LDAP per memorizzare utenti e ruoli."
#. Tag: para
#: Security.xml:560
#, no-c-format
-msgid ""
-"There are two configurable properties for the <literal>identityManager</"
-"literal> component - <literal>identityStore</literal> and "
-"<literal>roleIdentityStore</literal>. The value for these properties must be "
-"an EL expression referring to a Seam component implementing the "
-"<literal>IdentityStore</literal> interface. As already mentioned, if left "
-"unconfigured then <literal>JpaIdentityStore</literal> will be assumed by "
-"default. If only the <literal>identityStore</literal> property is "
-"configured, then the same value will be used for <literal>roleIdentityStore</"
-"literal> also. For example, the following entry in <literal>components.xml</"
-"literal> will configure <literal>identityManager</literal> to use an "
-"<literal>LdapIdentityStore</literal> for both user-related and role-related "
-"operations:"
-msgstr ""
-"Ci sono due proprietà configurabili per il componente "
-"<literal>identityManager</literal>, <literal>identityStore</literal> e "
-"<literal>roleIdentityStore</literal>. Il valore di queste proprietà deve "
-"essere un'espressione EL che fa riferimento ad un componente Seam che "
-"implementa l'interfaccia <literal>IdentityStore</literal>. Come già detto, "
-"se viene lasciato non configurato allora <literal>JpaIdentityStore</literal> "
-"viene assunto come default. Se è configurata solamente la proprietà "
-"<literal>identityStore</literal> allora lo stesso valore verrà usato anche "
-"per <literal>roleIdentityStore</literal>. Ad esempio la seguente voce in "
-"<literal>components.xml</literal> configura <literal>identityManager</"
-"literal> per usare un <literal>LdapIdentityStore</literal> sia per le "
-"operazioni relative agli utenti che per quelle relative ai ruoli:"
+msgid "There are two configurable properties for the <literal>identityManager</literal> component - <literal>identityStore</literal> and <literal>roleIdentityStore</literal>. The value for these properties must be an EL expression referring to a Seam component implementing the <literal>IdentityStore</literal> interface. As already mentioned, if left unconfigured then <literal>JpaIdentityStore</literal> will be assumed by default. If only the <literal>identityStore</literal> property is configured, then the same value will be used for <literal>roleIdentityStore</literal> also. For example, the following entry in <literal>components.xml</literal> will configure <literal>identityManager</literal> to use an <literal>LdapIdentityStore</literal> for both user-related and role-related operations:"
+msgstr "Ci sono due proprietà configurabili per il componente <literal>identityManager</literal>, <literal>identityStore</literal> e <literal>roleIdentityStore</literal>. Il valore di queste proprietà deve essere un'espressione EL che fa riferimento ad un componente Seam che implementa l'interfaccia <literal>IdentityStore</literal>. Come già detto, se viene lasciato non configurato allora <literal>JpaIdentityStore</literal> viene assunto come default. Se è configurata solamente la proprietà <literal>identityStore</literal> allora lo stesso valore verrà usato anche per <literal>roleIdentityStore</literal>. Ad esempio la seguente voce in <literal>components.xml</literal> configura <literal>identityManager</literal> per usare un <literal>LdapIdentityStore</literal> sia per le operazioni relative agli utenti che per quelle relative ai ruoli:"
#. Tag: programlisting
#: Security.xml:572
@@ -1597,15 +992,8 @@
#. Tag: para
#: Security.xml:574
#, no-c-format
-msgid ""
-"The following example configures <literal>identityManager</literal> to use "
-"an <literal>LdapIdentityStore</literal> for user-related operations, and "
-"<literal>JpaIdentityStore</literal> for role-related operations:"
-msgstr ""
-"Il seguente esempio configura <literal>identityManager</literal> per usare "
-"un <literal>LdapIdentityStore</literal> per le operazioni relative agli "
-"utenti e un <literal>JpaIdentityStore</literal> per le operazioni relative "
-"ai ruoli."
+msgid "The following example configures <literal>identityManager</literal> to use an <literal>LdapIdentityStore</literal> for user-related operations, and <literal>JpaIdentityStore</literal> for role-related operations:"
+msgstr "Il seguente esempio configura <literal>identityManager</literal> per usare un <literal>LdapIdentityStore</literal> per le operazioni relative agli utenti e un <literal>JpaIdentityStore</literal> per le operazioni relative ai ruoli."
#. Tag: programlisting
#: Security.xml:579
@@ -1626,12 +1014,8 @@
#. Tag: para
#: Security.xml:581
#, no-c-format
-msgid ""
-"The following sections explain both of these identity store implementations "
-"in greater detail."
-msgstr ""
-"Il paragrafo seguente spiega con maggiore dettaglio entrambe queste "
-"implementazioni di <literal>IdentityStore</literal>."
+msgid "The following sections explain both of these identity store implementations in greater detail."
+msgstr "Il paragrafo seguente spiega con maggiore dettaglio entrambe queste implementazioni di <literal>IdentityStore</literal>."
#. Tag: title
#: Security.xml:588
@@ -1642,20 +1026,8 @@
#. Tag: para
#: Security.xml:590
#, no-c-format
-msgid ""
-"This identity store allows for users and roles to be stored inside a "
-"relational database. It is designed to be as unrestrictive as possible in "
-"regards to database schema design, allowing a great deal of flexibility in "
-"the underlying table structure. This is achieved through the use of a set of "
-"special annotations, allowing entity beans to be configured to store user "
-"and role records."
-msgstr ""
-"Questa memorizzazione delle identità consente agli utenti e ai ruoli di "
-"essere memorizzati in un database relazionale. E' progettato per essere il "
-"meno restrittivo possibile riguardo allo schema del database, consentendo "
-"una grande flessibilità per la struttura delle tabelle sottostanti. Questo "
-"si ottiene tramite l'uso di uno speciale insieme di annotazioni, consentendo "
-"agli entity bean di essere configurati per memorizzare utenti e ruoli."
+msgid "This identity store allows for users and roles to be stored inside a relational database. It is designed to be as unrestrictive as possible in regards to database schema design, allowing a great deal of flexibility in the underlying table structure. This is achieved through the use of a set of special annotations, allowing entity beans to be configured to store user and role records."
+msgstr "Questa memorizzazione delle identità consente agli utenti e ai ruoli di essere memorizzati in un database relazionale. E' progettato per essere il meno restrittivo possibile riguardo allo schema del database, consentendo una grande flessibilità per la struttura delle tabelle sottostanti. Questo si ottiene tramite l'uso di uno speciale insieme di annotazioni, consentendo agli entity bean di essere configurati per memorizzare utenti e ruoli."
#. Tag: title
#: Security.xml:598
@@ -1666,20 +1038,8 @@
#. Tag: para
#: Security.xml:600
#, no-c-format
-msgid ""
-"<literal>JpaIdentityStore</literal> requires that both the <literal>user-"
-"class</literal> and <literal>role-class</literal> properties are configured. "
-"These properties should refer to the entity classes that are to be used to "
-"store both user and role records, respectively. The following example shows "
-"the configuration from <literal>components.xml</literal> in the SeamSpace "
-"example:"
-msgstr ""
-"<literal>JpaIdentityStore</literal> richiede che siano configurate sia la "
-"proprietà <literal>user-class</literal> che <literal>role-class</literal>. "
-"Queste proprietà devono riferirsi a classi entità che servono per "
-"memorizzare i record relativi agli utente e ai ruoli, rispettivamente. Il "
-"seguente esempio illustra la configurazione di <literal>components.xml</"
-"literal> nell'applicazione di esempio SeamSpace:"
+msgid "<literal>JpaIdentityStore</literal> requires that both the <literal>user-class</literal> and <literal>role-class</literal> properties are configured. These properties should refer to the entity classes that are to be used to store both user and role records, respectively. The following example shows the configuration from <literal>components.xml</literal> in the SeamSpace example:"
+msgstr "<literal>JpaIdentityStore</literal> richiede che siano configurate sia la proprietà <literal>user-class</literal> che <literal>role-class</literal>. Queste proprietà devono riferirsi a classi entità che servono per memorizzare i record relativi agli utente e ai ruoli, rispettivamente. Il seguente esempio illustra la configurazione di <literal>components.xml</literal> nell'applicazione di esempio SeamSpace:"
#. Tag: programlisting
#: Security.xml:607
@@ -1706,15 +1066,8 @@
#. Tag: para
#: Security.xml:614
#, no-c-format
-msgid ""
-"As already mentioned, a set of special annotations are used to configure "
-"entity beans for storing users and roles. The following table lists each of "
-"the annotations, and their descriptions."
-msgstr ""
-"Come già menzionato, un apposito insieme di annotazioni viene usato per "
-"configurare gli entity bean per la memorizzazione di utenti e ruoli. La "
-"seguente tabella elenca ciascuna di queste annotazioni e la relativa "
-"descrizione."
+msgid "As already mentioned, a set of special annotations are used to configure entity beans for storing users and roles. The following table lists each of the annotations, and their descriptions."
+msgstr "Come già menzionato, un apposito insieme di annotazioni viene usato per configurare gli entity bean per la memorizzazione di utenti e ruoli. La seguente tabella elenca ciascuna di queste annotazioni e la relativa descrizione."
#. Tag: title
#: Security.xml:620
@@ -1723,21 +1076,33 @@
msgstr "Annotazioni per l'entità utente"
#. Tag: para
-#: Security.xml:630 Security.xml:764 Security.xml:3382 Security.xml:3545
+#: Security.xml:630
+#: Security.xml:764
+#: Security.xml:3382
+#: Security.xml:3545
#, no-c-format
msgid "Annotation"
msgstr "Annotazione"
#. Tag: para
-#: Security.xml:633 Security.xml:767
+#: Security.xml:633
+#: Security.xml:767
#, no-c-format
msgid "Status"
msgstr "Stato"
#. Tag: para
-#: Security.xml:636 Security.xml:770 Security.xml:966 Security.xml:1418
-#: Security.xml:2147 Security.xml:2756 Security.xml:3171 Security.xml:3388
-#: Security.xml:3551 Security.xml:3792 Security.xml:4229
+#: Security.xml:636
+#: Security.xml:770
+#: Security.xml:966
+#: Security.xml:1418
+#: Security.xml:2147
+#: Security.xml:2756
+#: Security.xml:3171
+#: Security.xml:3388
+#: Security.xml:3551
+#: Security.xml:3792
+#: Security.xml:4229
#, no-c-format
msgid "Description"
msgstr "Descrizione"
@@ -1749,7 +1114,10 @@
msgstr "@UserPrincipal"
#. Tag: para
-#: Security.xml:649 Security.xml:665 Security.xml:740 Security.xml:783
+#: Security.xml:649
+#: Security.xml:665
+#: Security.xml:740
+#: Security.xml:783
#, no-c-format
msgid "Required"
msgstr "Richiesta"
@@ -1757,11 +1125,8 @@
#. Tag: para
#: Security.xml:652
#, no-c-format
-msgid ""
-"This annotation marks the field or method containing the user's username."
-msgstr ""
-"Questa annotazione contrassegna il campo o il metodo che contiene lo "
-"username dell'utente."
+msgid "This annotation marks the field or method containing the user's username."
+msgstr "Questa annotazione contrassegna il campo o il metodo che contiene lo username dell'utente."
#. Tag: literal
#: Security.xml:661
@@ -1772,17 +1137,8 @@
#. Tag: para
#: Security.xml:668
#, no-c-format
-msgid ""
-"This annotation marks the field or method containing the user's password. It "
-"allows a <literal>hash</literal> algorithm to be specified for password "
-"hashing. Possible values for <literal>hash</literal> are <literal>md5</"
-"literal>, <literal>sha</literal> and <literal>none</literal>. E.g:"
-msgstr ""
-"Questa annotazione contrassegna il campo o il metodo che contiene la "
-"password dell'utente. Consente di specificare un algoritmo di <literal>hash</"
-"literal> per nascondere la password. I possibili valori per <literal>hash</"
-"literal> sono <literal>md5</literal>, <literal>sha</literal> e "
-"<literal>none</literal>. Ad esempio:"
+msgid "This annotation marks the field or method containing the user's password. It allows a <literal>hash</literal> algorithm to be specified for password hashing. Possible values for <literal>hash</literal> are <literal>md5</literal>, <literal>sha</literal> and <literal>none</literal>. E.g:"
+msgstr "Questa annotazione contrassegna il campo o il metodo che contiene la password dell'utente. Consente di specificare un algoritmo di <literal>hash</literal> per nascondere la password. I possibili valori per <literal>hash</literal> sono <literal>md5</literal>, <literal>sha</literal> e <literal>none</literal>. Ad esempio:"
#. Tag: programlisting
#: Security.xml:674
@@ -1801,14 +1157,8 @@
#. Tag: para
#: Security.xml:676
#, no-c-format
-msgid ""
-"If an application requires a hash algorithm that isn't supported natively by "
-"Seam, it is possible to extend the <literal>PasswordHash</literal> component "
-"to implement other hashing algorithms."
-msgstr ""
-"Se un'applicazione richiede un algoritmo di hash che non è supportato "
-"direttamente da Seam, è possibile estendere il componente "
-"<literal>PasswordHash</literal> per implementare un altro algoritmo."
+msgid "If an application requires a hash algorithm that isn't supported natively by Seam, it is possible to extend the <literal>PasswordHash</literal> component to implement other hashing algorithms."
+msgstr "Se un'applicazione richiede un algoritmo di hash che non è supportato direttamente da Seam, è possibile estendere il componente <literal>PasswordHash</literal> per implementare un altro algoritmo."
#. Tag: literal
#: Security.xml:687
@@ -1817,7 +1167,10 @@
msgstr "@UserFirstName"
#. Tag: para
-#: Security.xml:691 Security.xml:707 Security.xml:723 Security.xml:799
+#: Security.xml:691
+#: Security.xml:707
+#: Security.xml:723
+#: Security.xml:799
#: Security.xml:815
#, no-c-format
msgid "Optional"
@@ -1826,11 +1179,8 @@
#. Tag: para
#: Security.xml:694
#, no-c-format
-msgid ""
-"This annotation marks the field or method containing the user's first name."
-msgstr ""
-"Questa annotazione contrassegna il campo o il metodo contenente il nome "
-"dell'utente."
+msgid "This annotation marks the field or method containing the user's first name."
+msgstr "Questa annotazione contrassegna il campo o il metodo contenente il nome dell'utente."
#. Tag: literal
#: Security.xml:703
@@ -1841,11 +1191,8 @@
#. Tag: para
#: Security.xml:710
#, no-c-format
-msgid ""
-"This annotation marks the field or method containing the user's last name."
-msgstr ""
-"Questa annotazione contrassegna il campo o il metodo contenente il cognome "
-"dell'utente."
+msgid "This annotation marks the field or method containing the user's last name."
+msgstr "Questa annotazione contrassegna il campo o il metodo contenente il cognome dell'utente."
#. Tag: literal
#: Security.xml:719
@@ -1856,14 +1203,8 @@
#. Tag: para
#: Security.xml:726
#, no-c-format
-msgid ""
-"This annotation marks the field or method containing the enabled status of "
-"the user. This should be a boolean property, and if not present then all "
-"user accounts are assumed to be enabled."
-msgstr ""
-"Questa annotazione contrassegna il campo o il metodo contenente lo stato di "
-"abilitazione dell'utente. Questo deve essere una proprietà boolean e, se non "
-"presente, tutti gli utenti saranno considerati abilitati."
+msgid "This annotation marks the field or method containing the enabled status of the user. This should be a boolean property, and if not present then all user accounts are assumed to be enabled."
+msgstr "Questa annotazione contrassegna il campo o il metodo contenente lo stato di abilitazione dell'utente. Questo deve essere una proprietà boolean e, se non presente, tutti gli utenti saranno considerati abilitati."
#. Tag: literal
#: Security.xml:736
@@ -1874,13 +1215,8 @@
#. Tag: para
#: Security.xml:743
#, no-c-format
-msgid ""
-"This annotation marks the field or method containing the roles of the user. "
-"This property will be described in more detail further down."
-msgstr ""
-"Questa annotazione contrassegna il campo o il metodo contenente i ruoli "
-"dell'utente. Questa proprietà verrà descritta in maggiore dettaglio "
-"successivamente."
+msgid "This annotation marks the field or method containing the roles of the user. This property will be described in more detail further down."
+msgstr "Questa annotazione contrassegna il campo o il metodo contenente i ruoli dell'utente. Questa proprietà verrà descritta in maggiore dettaglio successivamente."
#. Tag: title
#: Security.xml:754
@@ -1897,11 +1233,8 @@
#. Tag: para
#: Security.xml:786
#, no-c-format
-msgid ""
-"This annotation marks the field or method containing the name of the role."
-msgstr ""
-"Questa annotazione contrassegna il campo o il metodo contenente il nome del "
-"ruolo."
+msgid "This annotation marks the field or method containing the name of the role."
+msgstr "Questa annotazione contrassegna il campo o il metodo contenente il nome del ruolo."
#. Tag: literal
#: Security.xml:795
@@ -1912,12 +1245,8 @@
#. Tag: para
#: Security.xml:802
#, no-c-format
-msgid ""
-"This annotation marks the field or method containing the group memberships "
-"of the role."
-msgstr ""
-"Questa annotazione contrassegna il campo o il metodo contenente i gruppi di "
-"appartenenza del ruolo."
+msgid "This annotation marks the field or method containing the group memberships of the role."
+msgstr "Questa annotazione contrassegna il campo o il metodo contenente i gruppi di appartenenza del ruolo."
#. Tag: literal
#: Security.xml:811
@@ -1928,13 +1257,8 @@
#. Tag: para
#: Security.xml:818
#, no-c-format
-msgid ""
-"This annotation marks the field or method indicating whether the role is "
-"conditional or not. Conditional roles are explained later in this chapter."
-msgstr ""
-"Questa annotazione contrassegna il campo o il metodo che indica se il ruolo "
-"è condizionale o no. I ruoli condizionali verranno spiegati più avanti in "
-"questo capitolo."
+msgid "This annotation marks the field or method indicating whether the role is conditional or not. Conditional roles are explained later in this chapter."
+msgstr "Questa annotazione contrassegna il campo o il metodo che indica se il ruolo è condizionale o no. I ruoli condizionali verranno spiegati più avanti in questo capitolo."
#. Tag: title
#: Security.xml:832
@@ -1945,17 +1269,8 @@
#. Tag: para
#: Security.xml:834
#, no-c-format
-msgid ""
-"As mentioned previously, <literal>JpaIdentityStore</literal> is designed to "
-"be as flexible as possible when it comes to the database schema design of "
-"your user and role tables. This section looks at a number of possible "
-"database schemas that can be used to store user and role records."
-msgstr ""
-"Come detto precedentemente, <literal>JpaIdentityStore</literal> è progettato "
-"per essere il più possibile flessibile per ciò che riguarda lo schema del "
-"database delle tabelle degli utenti e dei ruoli. Questo paragrafo esamina "
-"una serie di possibili schemi di database che possono essere usati per "
-"memorizzare i record degli utenti e dei ruoli."
+msgid "As mentioned previously, <literal>JpaIdentityStore</literal> is designed to be as flexible as possible when it comes to the database schema design of your user and role tables. This section looks at a number of possible database schemas that can be used to store user and role records."
+msgstr "Come detto precedentemente, <literal>JpaIdentityStore</literal> è progettato per essere il più possibile flessibile per ciò che riguarda lo schema del database delle tabelle degli utenti e dei ruoli. Questo paragrafo esamina una serie di possibili schemi di database che possono essere usati per memorizzare i record degli utenti e dei ruoli."
#. Tag: title
#: Security.xml:841
@@ -1966,14 +1281,8 @@
#. Tag: para
#: Security.xml:843
#, no-c-format
-msgid ""
-"In this bare minimal example, a simple user and role table are linked via a "
-"many-to-many relationship using a cross-reference table named "
-"<literal>UserRoles</literal>."
-msgstr ""
-"In questo esempio minimale una tabella di utenti e una di ruoli sono legate "
-"tramite una relazione molti-a-molti che utilizza una tabella di collegamento "
-"chiamata <literal>UserRoles</literal>."
+msgid "In this bare minimal example, a simple user and role table are linked via a many-to-many relationship using a cross-reference table named <literal>UserRoles</literal>."
+msgstr "In questo esempio minimale una tabella di utenti e una di ruoli sono legate tramite una relazione molti-a-molti che utilizza una tabella di collegamento chiamata <literal>UserRoles</literal>."
#. Tag: programlisting
#: Security.xml:857
@@ -1996,8 +1305,7 @@
" \n"
" @UserPassword(hash = \"md5\")\n"
" public String getPasswordHash() { return passwordHash; }\n"
-" public void setPasswordHash(String passwordHash) { this.passwordHash = "
-"passwordHash; }\n"
+" public void setPasswordHash(String passwordHash) { this.passwordHash = passwordHash; }\n"
" \n"
" @UserRoles\n"
" @ManyToMany(targetEntity = Role.class)\n"
@@ -2025,8 +1333,7 @@
" \n"
" @UserPassword(hash = \"md5\")\n"
" public String getPasswordHash() { return passwordHash; }\n"
-" public void setPasswordHash(String passwordHash) { this.passwordHash = "
-"passwordHash; }\n"
+" public void setPasswordHash(String passwordHash) { this.passwordHash = passwordHash; }\n"
" \n"
" @UserRoles\n"
" @ManyToMany(targetEntity = Role.class)\n"
@@ -2078,12 +1385,8 @@
#. Tag: para
#: Security.xml:865
#, no-c-format
-msgid ""
-"This example builds on the above minimal example by including all of the "
-"optional fields, and allowing group memberships for roles."
-msgstr ""
-"Questo esempio è costruito a partire dall'esempio minimo includendo tutti i "
-"campi opzionali e consentendo ai ruoli di appartenere ai gruppi."
+msgid "This example builds on the above minimal example by including all of the optional fields, and allowing group memberships for roles."
+msgstr "Questo esempio è costruito a partire dall'esempio minimo includendo tutti i campi opzionali e consentendo ai ruoli di appartenere ai gruppi."
#. Tag: programlisting
#: Security.xml:879
@@ -2109,13 +1412,11 @@
" \n"
" @UserPassword(hash = \"md5\")\n"
" public String getPasswordHash() { return passwordHash; }\n"
-" public void setPasswordHash(String passwordHash) { this.passwordHash = "
-"passwordHash; }\n"
+" public void setPasswordHash(String passwordHash) { this.passwordHash = passwordHash; }\n"
" \n"
" @UserFirstName\n"
" public String getFirstname() { return firstname; }\n"
-" public void setFirstname(String firstname) { this.firstname = "
-"firstname; }\n"
+" public void setFirstname(String firstname) { this.firstname = firstname; }\n"
" \n"
" @UserLastName\n"
" public String getLastname() { return lastname; }\n"
@@ -2154,13 +1455,11 @@
" \n"
" @UserPassword(hash = \"md5\")\n"
" public String getPasswordHash() { return passwordHash; }\n"
-" public void setPasswordHash(String passwordHash) { this.passwordHash = "
-"passwordHash; }\n"
+" public void setPasswordHash(String passwordHash) { this.passwordHash = passwordHash; }\n"
" \n"
" @UserFirstName\n"
" public String getFirstname() { return firstname; }\n"
-" public void setFirstname(String firstname) { this.firstname = "
-"firstname; }\n"
+" public void setFirstname(String firstname) { this.firstname = firstname; }\n"
" \n"
" @UserLastName\n"
" public String getLastname() { return lastname; }\n"
@@ -2199,8 +1498,7 @@
" \n"
" @RoleConditional\n"
" public boolean isConditional() { return conditional; }\n"
-" public void setConditional(boolean conditional) { this.conditional = "
-"conditional; }\n"
+" public void setConditional(boolean conditional) { this.conditional = conditional; }\n"
" \n"
" @RoleGroups\n"
" @ManyToMany(targetEntity = Role.class)\n"
@@ -2228,8 +1526,7 @@
" \n"
" @RoleConditional\n"
" public boolean isConditional() { return conditional; }\n"
-" public void setConditional(boolean conditional) { this.conditional = "
-"conditional; }\n"
+" public void setConditional(boolean conditional) { this.conditional = conditional; }\n"
" \n"
" @RoleGroups\n"
" @ManyToMany(targetEntity = Role.class)\n"
@@ -2250,16 +1547,8 @@
#. Tag: para
#: Security.xml:888
#, no-c-format
-msgid ""
-"When using <literal>JpaIdentityStore</literal> as the identity store "
-"implementation with <literal>IdentityManager</literal>, a few events are "
-"raised as a result of invoking certain <literal>IdentityManager</literal> "
-"methods."
-msgstr ""
-"Quando si usa <literal>JpaIdentityStore</literal> come implementazione della "
-"memorizzazione delle identità con <literal>IdentityManager</literal>, alcuni "
-"eventi vengono lanciati in corrispondenza dell'invocazione di certi metodi "
-"di <literal>IdentityManager</literal>."
+msgid "When using <literal>JpaIdentityStore</literal> as the identity store implementation with <literal>IdentityManager</literal>, a few events are raised as a result of invoking certain <literal>IdentityManager</literal> methods."
+msgstr "Quando si usa <literal>JpaIdentityStore</literal> come implementazione della memorizzazione delle identità con <literal>IdentityManager</literal>, alcuni eventi vengono lanciati in corrispondenza dell'invocazione di certi metodi di <literal>IdentityManager</literal>."
#. Tag: title
#: Security.xml:894
@@ -2270,31 +1559,14 @@
#. Tag: para
#: Security.xml:896
#, no-c-format
-msgid ""
-"This event is raised in response to calling <literal>IdentityManager."
-"createUser()</literal>. Just before the user entity is persisted to the "
-"database, this event will be raised passing the entity instance as an event "
-"parameter. The entity will be an instance of the <literal>user-class</"
-"literal> configured for <literal>JpaIdentityStore</literal>."
-msgstr ""
-"Questo evento viene lanciato in corrispondenza della chiamata "
-"<literal>IdentityManager.createUser()</literal>. Subito prima che l'entità "
-"utente sia resa persistente sul database questo evento viene lanciato "
-"passando l'istanza dell'entità come parametro dell'evento. L'entità sarà un "
-"istanza di <literal>user-class</literal> configurata per "
-"<literal>JpaIdentityStore</literal>."
+msgid "This event is raised in response to calling <literal>IdentityManager.createUser()</literal>. Just before the user entity is persisted to the database, this event will be raised passing the entity instance as an event parameter. The entity will be an instance of the <literal>user-class</literal> configured for <literal>JpaIdentityStore</literal>."
+msgstr "Questo evento viene lanciato in corrispondenza della chiamata <literal>IdentityManager.createUser()</literal>. Subito prima che l'entità utente sia resa persistente sul database questo evento viene lanciato passando l'istanza dell'entità come parametro dell'evento. L'entità sarà un istanza di <literal>user-class</literal> configurata per <literal>JpaIdentityStore</literal>."
#. Tag: para
#: Security.xml:902
#, no-c-format
-msgid ""
-"Writing an observer for this event may be useful for setting additional "
-"field values on the entity, which aren't set as part of the standard "
-"<literal>createUser()</literal> functionality."
-msgstr ""
-"Scrivere un metodo che osserva questo evento può essere utile per impostare "
-"valori addizionali sui campi dell'entità che non vengono impostati "
-"nell'ambito delle funzionalità standard di <literal>createUser()</literal>."
+msgid "Writing an observer for this event may be useful for setting additional field values on the entity, which aren't set as part of the standard <literal>createUser()</literal> functionality."
+msgstr "Scrivere un metodo che osserva questo evento può essere utile per impostare valori addizionali sui campi dell'entità che non vengono impostati nell'ambito delle funzionalità standard di <literal>createUser()</literal>."
#. Tag: title
#: Security.xml:909
@@ -2305,23 +1577,8 @@
#. Tag: para
#: Security.xml:911
#, no-c-format
-msgid ""
-"This event is also raised in response to calling <literal>IdentityManager."
-"createUser()</literal>. However, it is raised after the user entity has "
-"already been persisted to the database. Like the "
-"<literal>EVENT_PRE_PERSIST_USER</literal> event, it also passes the entity "
-"instance as an event parameter. It may be useful to observe this event if "
-"you also need to persist other entities that reference the user entity, for "
-"example contact detail records or other user-specific data."
-msgstr ""
-"Anche questo evento viene lanciato in corrispondenza di "
-"<literal>IdentityMananger.createUser()</literal>. Però viene lanciato dopo "
-"che l'entità utente è già stata resa persistente sul database. Come per "
-"l'evento <literal>EVENT_PRE_PERSIST_USER</literal>, anche questo passa "
-"l'istanza dell'entità come un parametro dell'evento. Può essere utile "
-"osservare questo evento se c'è bisogno di rendere persistenti altre entità "
-"che fanno riferimento all'entità utente, ad esempio informazioni di "
-"dettaglio del contatto o altri dati specifici dell'utente."
+msgid "This event is also raised in response to calling <literal>IdentityManager.createUser()</literal>. However, it is raised after the user entity has already been persisted to the database. Like the <literal>EVENT_PRE_PERSIST_USER</literal> event, it also passes the entity instance as an event parameter. It may be useful to observe this event if you also need to persist other entities that reference the user entity, for example contact detail records or other user-specific data."
+msgstr "Anche questo evento viene lanciato in corrispondenza di <literal>IdentityMananger.createUser()</literal>. Però viene lanciato dopo che l'entità utente è già stata resa persistente sul database. Come per l'evento <literal>EVENT_PRE_PERSIST_USER</literal>, anche questo passa l'istanza dell'entità come un parametro dell'evento. Può essere utile osservare questo evento se c'è bisogno di rendere persistenti altre entità che fanno riferimento all'entità utente, ad esempio informazioni di dettaglio del contatto o altri dati specifici dell'utente."
#. Tag: title
#: Security.xml:921
@@ -2332,16 +1589,8 @@
#. Tag: para
#: Security.xml:923
#, no-c-format
-msgid ""
-"This event is raised when calling <literal>IdentityManager.authenticate()</"
-"literal>. It passes the user entity instance as the event parameter, and is "
-"useful for reading additional properties from the user entity that is being "
-"authenticated."
-msgstr ""
-"Questo evento viene lanciato quando viene chiamata <literal>IdentityManager."
-"authenticate()</literal>. Passa l'istanza dell'entità utente come parametro "
-"dell'evento e risulta utile per leggere proprietà aggiuntive dall'entità "
-"dell'utente che è stato autenticato."
+msgid "This event is raised when calling <literal>IdentityManager.authenticate()</literal>. It passes the user entity instance as the event parameter, and is useful for reading additional properties from the user entity that is being authenticated."
+msgstr "Questo evento viene lanciato quando viene chiamata <literal>IdentityManager.authenticate()</literal>. Passa l'istanza dell'entità utente come parametro dell'evento e risulta utile per leggere proprietà aggiuntive dall'entità dell'utente che è stato autenticato."
#. Tag: title
#: Security.xml:933
@@ -2352,19 +1601,8 @@
#. Tag: para
#: Security.xml:935
#, no-c-format
-msgid ""
-"This identity store implementation is designed for working with user records "
-"stored in an LDAP directory. It is very highly configurable, allowing great "
-"flexibility in how both users and roles are stored in the directory. The "
-"following sections describe the configuration options for this identity "
-"store, and provide some configuration examples."
-msgstr ""
-"Questa implementazione della memorizzazione delle identità è progettata per "
-"funzionare quando le informazioni sugli utenti sono memorizzate in una "
-"directory LDAP. E' molto configurabile consentendo una grande flessibilità "
-"sul modo in cui utenti e ruoli sono memorizzati nella directory. ll seguente "
-"paragrafo descrive le opzioni di configurazione per questa implementazione e "
-"fornisce alcuni esempi di configurazione."
+msgid "This identity store implementation is designed for working with user records stored in an LDAP directory. It is very highly configurable, allowing great flexibility in how both users and roles are stored in the directory. The following sections describe the configuration options for this identity store, and provide some configuration examples."
+msgstr "Questa implementazione della memorizzazione delle identità è progettata per funzionare quando le informazioni sugli utenti sono memorizzate in una directory LDAP. E' molto configurabile consentendo una grande flessibilità sul modo in cui utenti e ruoli sono memorizzati nella directory. ll seguente paragrafo descrive le opzioni di configurazione per questa implementazione e fornisce alcuni esempi di configurazione."
#. Tag: title
#: Security.xml:942
@@ -2375,14 +1613,8 @@
#. Tag: para
#: Security.xml:944
#, no-c-format
-msgid ""
-"The following table describes the available properties that can be "
-"configured in <literal>components.xml</literal> for "
-"<literal>LdapIdentityStore</literal>."
-msgstr ""
-"La seguente tabella descrive le proprietà disponibili che possono essere "
-"configurate in <literal>components.xml</literal> per "
-"<literal>LdapIdentityStore</literal>."
+msgid "The following table describes the available properties that can be configured in <literal>components.xml</literal> for <literal>LdapIdentityStore</literal>."
+msgstr "La seguente tabella descrive le proprietà disponibili che possono essere configurate in <literal>components.xml</literal> per <literal>LdapIdentityStore</literal>."
#. Tag: title
#: Security.xml:950
@@ -2454,9 +1686,7 @@
#: Security.xml:1014
#, no-c-format
msgid "The Distinguished Name (DN) of the context containing user records."
-msgstr ""
-"Il Distinguished Name (DN) del contesto contenente le informazioni sugli "
-"utenti."
+msgstr "Il Distinguished Name (DN) del contesto contenente le informazioni sugli utenti."
#. Tag: literal
#: Security.xml:1023
@@ -2473,12 +1703,8 @@
#. Tag: para
#: Security.xml:1030
#, no-c-format
-msgid ""
-"This value is prefixed to the front of the username to locate the user's "
-"record."
-msgstr ""
-"Questo valore è usato come prefisso anteponendolo al nome utente durante la "
-"ricerca delle informazioni sull'utente."
+msgid "This value is prefixed to the front of the username to locate the user's record."
+msgstr "Questo valore è usato come prefisso anteponendolo al nome utente durante la ricerca delle informazioni sull'utente."
#. Tag: literal
#: Security.xml:1039
@@ -2495,12 +1721,8 @@
#. Tag: para
#: Security.xml:1046
#, no-c-format
-msgid ""
-"This value is appended to the end of the username to locate the user's "
-"record."
-msgstr ""
-"Questo valore è aggiunto alla fine del nome utente per ricercare le "
-"informazioni sull'utente."
+msgid "This value is appended to the end of the username to locate the user's record."
+msgstr "Questo valore è aggiunto alla fine del nome utente per ricercare le informazioni sull'utente."
#. Tag: literal
#: Security.xml:1055
@@ -2535,12 +1757,8 @@
#. Tag: para
#: Security.xml:1078
#, no-c-format
-msgid ""
-"This value is prefixed to the front of the role name to form the DN for "
-"locating the role record."
-msgstr ""
-"Questo valore è usato come prefisso anteponendolo al nome del ruolo per "
-"formare il DN nella ricerca delle informazioni sul ruolo."
+msgid "This value is prefixed to the front of the role name to form the DN for locating the role record."
+msgstr "Questo valore è usato come prefisso anteponendolo al nome del ruolo per formare il DN nella ricerca delle informazioni sul ruolo."
#. Tag: literal
#: Security.xml:1088
@@ -2557,12 +1775,8 @@
#. Tag: para
#: Security.xml:1095
#, no-c-format
-msgid ""
-"This value is appended to the role name to form the DN for locating the role "
-"record."
-msgstr ""
-"Questo valore è aggiunto al nome del ruolo per formare il DN nella ricerca "
-"delle informazioni sul ruolo."
+msgid "This value is appended to the role name to form the DN for locating the role record."
+msgstr "Questo valore è aggiunto al nome del ruolo per formare il DN nella ricerca delle informazioni sul ruolo."
#. Tag: literal
#: Security.xml:1104
@@ -2597,10 +1811,8 @@
#. Tag: para
#: Security.xml:1127
#, no-c-format
-msgid ""
-"These are the credentials (the password) used to bind to the LDAP server."
-msgstr ""
-"Queste sono le credenziali (la password) usate per collegare il server LDAP."
+msgid "These are the credentials (the password) used to bind to the LDAP server."
+msgstr "Queste sono le credenziali (la password) usate per collegare il server LDAP."
#. Tag: literal
#: Security.xml:1136
@@ -2617,12 +1829,8 @@
#. Tag: para
#: Security.xml:1143
#, no-c-format
-msgid ""
-"This is the name of the attribute of the user record that contains the list "
-"of roles that the user is a member of."
-msgstr ""
-"Questo è il nome dell'attributo sulle informazioni dell'utente che contiene "
-"la lista dei ruoli di cui l'utente è membro."
+msgid "This is the name of the attribute of the user record that contains the list of roles that the user is a member of."
+msgstr "Questo è il nome dell'attributo sulle informazioni dell'utente che contiene la lista dei ruoli di cui l'utente è membro."
#. Tag: literal
#: Security.xml:1153
@@ -2639,12 +1847,8 @@
#. Tag: para
#: Security.xml:1160
#, no-c-format
-msgid ""
-"This boolean property indicates whether the role attribute of the user "
-"record is itself a distinguished name."
-msgstr ""
-"Questa proprietà boolean indica se l'attributo del ruolo nelle informazioni "
-"dell'utente è esso stesso un Distinguished Name."
+msgid "This boolean property indicates whether the role attribute of the user record is itself a distinguished name."
+msgstr "Questa proprietà boolean indica se l'attributo del ruolo nelle informazioni dell'utente è esso stesso un Distinguished Name."
#. Tag: literal
#: Security.xml:1170
@@ -2662,9 +1866,7 @@
#: Security.xml:1177
#, no-c-format
msgid "Indicates which attribute of the user record contains the username."
-msgstr ""
-"Indica quale attributo delle informazioni sull'utente contiene il nome "
-"utente."
+msgstr "Indica quale attributo delle informazioni sull'utente contiene il nome utente."
#. Tag: literal
#: Security.xml:1186
@@ -2681,11 +1883,8 @@
#. Tag: para
#: Security.xml:1193
#, no-c-format
-msgid ""
-"Indicates which attribute of the user record contains the user's password."
-msgstr ""
-"Indica quale attributo nelle informazioni sull'utente contiene la password "
-"dell'utente."
+msgid "Indicates which attribute of the user record contains the user's password."
+msgstr "Indica quale attributo nelle informazioni sull'utente contiene la password dell'utente."
#. Tag: literal
#: Security.xml:1202
@@ -2694,7 +1893,8 @@
msgstr "first-name-attribute"
#. Tag: literal
-#: Security.xml:1206 Security.xml:1254
+#: Security.xml:1206
+#: Security.xml:1254
#, no-c-format
msgid "null"
msgstr "null"
@@ -2702,11 +1902,8 @@
#. Tag: para
#: Security.xml:1209
#, no-c-format
-msgid ""
-"Indicates which attribute of the user record contains the user's first name."
-msgstr ""
-"Indica quale attributo nelle informazioni sull'utente contiene il nome "
-"proprio dell'utente."
+msgid "Indicates which attribute of the user record contains the user's first name."
+msgstr "Indica quale attributo nelle informazioni sull'utente contiene il nome proprio dell'utente."
#. Tag: literal
#: Security.xml:1218
@@ -2723,11 +1920,8 @@
#. Tag: para
#: Security.xml:1225
#, no-c-format
-msgid ""
-"Indicates which attribute of the user record contains the user's last name."
-msgstr ""
-"Indica quale attributo nelle informazioni sull'utente contiene il cognome "
-"dell'utente."
+msgid "Indicates which attribute of the user record contains the user's last name."
+msgstr "Indica quale attributo nelle informazioni sull'utente contiene il cognome dell'utente."
#. Tag: literal
#: Security.xml:1234
@@ -2736,7 +1930,8 @@
msgstr "full-name-attribute"
#. Tag: literal
-#: Security.xml:1238 Security.xml:1270
+#: Security.xml:1238
+#: Security.xml:1270
#, no-c-format
msgid "<literal>cn</literal>"
msgstr "<literal>cn</literal>"
@@ -2744,12 +1939,8 @@
#. Tag: para
#: Security.xml:1241
#, no-c-format
-msgid ""
-"Indicates which attribute of the user record contains the user's full "
-"(common) name."
-msgstr ""
-"Indica quale attributo nelle informazioni sull'utente contiene il nome per "
-"esteso dell'utente."
+msgid "Indicates which attribute of the user record contains the user's full (common) name."
+msgstr "Indica quale attributo nelle informazioni sull'utente contiene il nome per esteso dell'utente."
#. Tag: literal
#: Security.xml:1250
@@ -2760,12 +1951,8 @@
#. Tag: para
#: Security.xml:1257
#, no-c-format
-msgid ""
-"Indicates which attribute of the user record determines whether the user is "
-"enabled."
-msgstr ""
-"Indica quale attributo nelle informazioni sull'utente determina se l'utente "
-"è abilitato."
+msgid "Indicates which attribute of the user record determines whether the user is enabled."
+msgstr "Indica quale attributo nelle informazioni sull'utente determina se l'utente è abilitato."
#. Tag: literal
#: Security.xml:1266
@@ -2776,11 +1963,8 @@
#. Tag: para
#: Security.xml:1273
#, no-c-format
-msgid ""
-"Indicates which attribute of the role record contains the name of the role."
-msgstr ""
-"Indica quale attributo nell'informazioni sul ruolo contiene il nome del "
-"ruolo."
+msgid "Indicates which attribute of the role record contains the name of the role."
+msgstr "Indica quale attributo nell'informazioni sul ruolo contiene il nome del ruolo."
#. Tag: literal
#: Security.xml:1282
@@ -2797,10 +1981,8 @@
#. Tag: para
#: Security.xml:1289
#, no-c-format
-msgid ""
-"Indicates which attribute determines the class of an object in the directory."
-msgstr ""
-"Indica quale attributo determina la classe di un oggetto nella directory."
+msgid "Indicates which attribute determines the class of an object in the directory."
+msgstr "Indica quale attributo determina la classe di un oggetto nella directory."
#. Tag: literal
#: Security.xml:1298
@@ -2817,11 +1999,8 @@
#. Tag: para
#: Security.xml:1305
#, no-c-format
-msgid ""
-"An array of the object classes that new role records should be created as."
-msgstr ""
-"Un elenco di classi di oggetto con cui devono essere create le informazioni "
-"su un nuovo ruolo."
+msgid "An array of the object classes that new role records should be created as."
+msgstr "Un elenco di classi di oggetto con cui devono essere create le informazioni su un nuovo ruolo."
#. Tag: literal
#: Security.xml:1314
@@ -2838,11 +2017,8 @@
#. Tag: para
#: Security.xml:1321
#, no-c-format
-msgid ""
-"An array of the object classes that new user records should be created as."
-msgstr ""
-"Un elenco di classi di oggetto con cui devono essere create le informazioni "
-"su un nuovo utente."
+msgid "An array of the object classes that new user records should be created as."
+msgstr "Un elenco di classi di oggetto con cui devono essere create le informazioni su un nuovo utente."
#. Tag: title
#: Security.xml:1333
@@ -2853,32 +2029,8 @@
#. Tag: para
#: Security.xml:1335
#, no-c-format
-msgid ""
-"The following configuration example shows how <literal>LdapIdentityStore</"
-"literal> may be configured for an LDAP directory running on fictional host "
-"<literal>directory.mycompany.com</literal>. The users are stored within this "
-"directory under the context <literal>ou=Person,dc=mycompany,dc=com</"
-"literal>, and are identified using the <literal>uid</literal> attribute "
-"(which corresponds to their username). Roles are stored in their own "
-"context, <literal>ou=Roles,dc=mycompany,dc=com</literal> and referenced from "
-"the user's entry via the <literal>roles</literal> attribute. Role entries "
-"are identified by their common name (the <literal>cn</literal> attribute) , "
-"which corresponds to the role name. In this example, users may be disabled "
-"by setting the value of their <literal>enabled</literal> attribute to false."
-msgstr ""
-"La seguente configurazione di esempio mostra come "
-"<literal>LdapIdentityStore</literal> può essere configurato per una "
-"directory LDAP sul sistema immaginario <literal>directory.mycompany.com</"
-"literal>. Gli utenti sono memorizzati all'interno di questa directory sotto "
-"il contesto <literal>ou=Person,dc=mycompany,dc=com</literal> e sono "
-"identificati usando l'attributo <literal>uid</literal> (che corrisponde al "
-"loro nome utente). I ruoli sono memorizzati nel loro contesto, "
-"<literal>ou=Roles,dc=mycompany,dc=com</literal> e referenziati dalla voce "
-"dell'utente tramite l'attributo <literal>roles</literal>. Le voci dei ruoli "
-"sono identificate tramite il loro common name (l'attributo <literal>cn</"
-"literal>), che corrisponde al nome del ruolo. In questo esempio gli utenti "
-"possono essere disabilitati impostando il valoro del loro attributo "
-"<literal>enabled</literal> a false."
+msgid "The following configuration example shows how <literal>LdapIdentityStore</literal> may be configured for an LDAP directory running on fictional host <literal>directory.mycompany.com</literal>. The users are stored within this directory under the context <literal>ou=Person,dc=mycompany,dc=com</literal>, and are identified using the <literal>uid</literal> attribute (which corresponds to their username). Roles are stored in their own context, <literal>ou=Roles,dc=mycompany,dc=com</literal> and referenced from the user's entry via the <literal>roles</literal> attribute. Role entries are identified by their common name (the <literal>cn</literal> attribute) , which corresponds to the role name. In this example, users may be disabled by setting the value of their <literal>enabled</literal> attribute to false."
+msgstr "La seguente configurazione di esempio mostra come <literal>LdapIdentityStore</literal> può essere configurato per una directory LDAP sul sistema immaginario <literal>directory.mycompany.com</literal>. Gli utenti sono memorizzati all'interno di questa directory sotto il contesto <literal>ou=Person,dc=mycompany,dc=com</literal> e sono identificati usando l'attributo <literal>uid</literal> (che corrisponde al loro nome utente). I ruoli sono memorizzati nel loro contesto, <literal>ou=Roles,dc=mycompany,dc=com</literal> e referenziati dalla voce dell'utente tramite l'attributo <literal>roles</literal>. Le voci dei ruoli sono identificate tramite il loro common name (l'attributo <literal>cn</literal>), che corrisponde al nome del ruolo. In questo esempio gli utenti possono essere disabilitati impostando il valoro del loro attributo <literal>enabled</literal> a false."
#. Tag: programlisting
#: Security.xml:1346
@@ -2927,29 +2079,14 @@
#. Tag: para
#: Security.xml:1355
#, no-c-format
-msgid ""
-"Writing your own identity store implementation allows you to authenticate "
-"and perform identity management operations against security providers that "
-"aren't supported out of the box by Seam. Only a single class is required to "
-"achieve this, and it must implement the <literal>org.jboss.seam.security."
-"management.IdentityStore</literal> interface."
-msgstr ""
-"Scrivere la propria implementazione della memorizzazione delle identità "
-"consente di autenticare ed eseguire le operazioni di gestione delle identità "
-"su fornitori di sicurezza che non sono gestiti da Seam così com'è. Per "
-"ottenere ciò è richiesta una sola classe ed essa deve implementare "
-"l'interfaccia <literal>org.jboss.seam.security.management.IdentityStore</"
-"literal>."
+msgid "Writing your own identity store implementation allows you to authenticate and perform identity management operations against security providers that aren't supported out of the box by Seam. Only a single class is required to achieve this, and it must implement the <literal>org.jboss.seam.security.management.IdentityStore</literal> interface."
+msgstr "Scrivere la propria implementazione della memorizzazione delle identità consente di autenticare ed eseguire le operazioni di gestione delle identità su fornitori di sicurezza che non sono gestiti da Seam così com'è. Per ottenere ciò è richiesta una sola classe ed essa deve implementare l'interfaccia <literal>org.jboss.seam.security.management.IdentityStore</literal>."
#. Tag: para
#: Security.xml:1362
#, no-c-format
-msgid ""
-"Please refer to the JavaDoc for <literal>IdentityStore</literal> for a "
-"description of the methods that must be implemented."
-msgstr ""
-"Fare riferimento al JavaDoc di <literal>IdentityStore</literal> per una "
-"descrizione dei metodi che devono essere implementati."
+msgid "Please refer to the JavaDoc for <literal>IdentityStore</literal> for a description of the methods that must be implemented."
+msgstr "Fare riferimento al JavaDoc di <literal>IdentityStore</literal> per una descrizione dei metodi che devono essere implementati."
#. Tag: title
#: Security.xml:1370
@@ -2960,25 +2097,8 @@
#. Tag: para
#: Security.xml:1372
#, no-c-format
-msgid ""
-"If you are using the Identity Management features in your Seam application, "
-"then it is not required to provide an authenticator component (see previous "
-"Authentication section) to enable authentication. Simply omit the "
-"<literal>authenticator-method</literal> from the <literal>identity</literal> "
-"configuration in <literal>components.xml</literal>, and the "
-"<literal>SeamLoginModule</literal> will by default use "
-"<literal>IdentityManager</literal> to authenticate your application's users, "
-"without any special configuration required."
-msgstr ""
-"Se in un'applicazione Seam si stanno usando le funzioni di gestione delle "
-"identità, allora non è richiesto di fornire un componente "
-"<literal>authenticator</literal> (vedi il precedente paragrafo "
-"Autenticazione) per abilitare l'autentifica. Basta omettere "
-"<literal>authenticator-method</literal> dalla configurazione di "
-"<literal>identity</literal> in <literal>components.xml</literal> e il "
-"<literal>SeamLoginModule</literal> userà per default "
-"<literal>IdentityManger</literal> per autenticare gli utenti "
-"dell'applicazione, senza nessuna configurazione speciale."
+msgid "If you are using the Identity Management features in your Seam application, then it is not required to provide an authenticator component (see previous Authentication section) to enable authentication. Simply omit the <literal>authenticator-method</literal> from the <literal>identity</literal> configuration in <literal>components.xml</literal>, and the <literal>SeamLoginModule</literal> will by default use <literal>IdentityManager</literal> to authenticate your application's users, without any special configuration required."
+msgstr "Se in un'applicazione Seam si stanno usando le funzioni di gestione delle identità, allora non è richiesto di fornire un componente <literal>authenticator</literal> (vedi il precedente paragrafo Autenticazione) per abilitare l'autentifica. Basta omettere <literal>authenticator-method</literal> dalla configurazione di <literal>identity</literal> in <literal>components.xml</literal> e il <literal>SeamLoginModule</literal> userà per default <literal>IdentityManger</literal> per autenticare gli utenti dell'applicazione, senza nessuna configurazione speciale."
#. Tag: title
#: Security.xml:1383
@@ -2989,12 +2109,8 @@
#. Tag: para
#: Security.xml:1385
#, no-c-format
-msgid ""
-"The <literal>IdentityManager</literal> can be accessed either by injecting "
-"it into your Seam component as follows:"
-msgstr ""
-"<literal>IdentityManager</literal> può essere utilizzato sia iniettandolo in "
-"un componente Seam come di seguito:"
+msgid "The <literal>IdentityManager</literal> can be accessed either by injecting it into your Seam component as follows:"
+msgstr "<literal>IdentityManager</literal> può essere utilizzato sia iniettandolo in un componente Seam come di seguito:"
#. Tag: programlisting
#: Security.xml:1390
@@ -3005,29 +2121,20 @@
#. Tag: para
#: Security.xml:1392
#, no-c-format
-msgid ""
-"or by accessing it through its static <literal>instance()</literal> method:"
-msgstr ""
-"sia accedendo ad esso tramite il suo metodo statico <literal>instance()</"
-"literal>:"
+msgid "or by accessing it through its static <literal>instance()</literal> method:"
+msgstr "sia accedendo ad esso tramite il suo metodo statico <literal>instance()</literal>:"
#. Tag: programlisting
#: Security.xml:1396
#, no-c-format
-msgid ""
-"<![CDATA[ IdentityManager identityManager = IdentityManager.instance();]]>"
-msgstr ""
-"<![CDATA[ IdentityManager identityManager = IdentityManager.instance();]]>"
+msgid "<![CDATA[ IdentityManager identityManager = IdentityManager.instance();]]>"
+msgstr "<![CDATA[ IdentityManager identityManager = IdentityManager.instance();]]>"
#. Tag: para
#: Security.xml:1398
#, no-c-format
-msgid ""
-"The following table describes <literal>IdentityManager</literal>'s API "
-"methods:"
-msgstr ""
-"La seguente tabella descrive i metodi di API per <literal>IdentityManager</"
-"literal>:"
+msgid "The following table describes <literal>IdentityManager</literal>'s API methods:"
+msgstr "La seguente tabella descrive i metodi di API per <literal>IdentityManager</literal>:"
#. Tag: title
#: Security.xml:1403
@@ -3036,8 +2143,12 @@
msgstr "API per la gestione delle identità"
#. Tag: para
-#: Security.xml:1412 Security.xml:1828 Security.xml:2753 Security.xml:3168
-#: Security.xml:3789 Security.xml:3958
+#: Security.xml:1412
+#: Security.xml:1828
+#: Security.xml:2753
+#: Security.xml:3168
+#: Security.xml:3789
+#: Security.xml:3958
#, no-c-format
msgid "Method"
msgstr "Metodo"
@@ -3055,12 +2166,29 @@
msgstr "createUser(String name, String password)"
#. Tag: literal
-#: Security.xml:1433 Security.xml:1452 Security.xml:1471 Security.xml:1490
-#: Security.xml:1509 Security.xml:1529 Security.xml:1548 Security.xml:1567
-#: Security.xml:1586 Security.xml:1606 Security.xml:1626 Security.xml:1740
-#: Security.xml:1762 Security.xml:1780 Security.xml:2766 Security.xml:3239
-#: Security.xml:3258 Security.xml:3277 Security.xml:3295 Security.xml:3840
-#: Security.xml:3859 Security.xml:3878 Security.xml:3897
+#: Security.xml:1433
+#: Security.xml:1452
+#: Security.xml:1471
+#: Security.xml:1490
+#: Security.xml:1509
+#: Security.xml:1529
+#: Security.xml:1548
+#: Security.xml:1567
+#: Security.xml:1586
+#: Security.xml:1606
+#: Security.xml:1626
+#: Security.xml:1740
+#: Security.xml:1762
+#: Security.xml:1780
+#: Security.xml:2766
+#: Security.xml:3239
+#: Security.xml:3258
+#: Security.xml:3277
+#: Security.xml:3295
+#: Security.xml:3840
+#: Security.xml:3859
+#: Security.xml:3878
+#: Security.xml:3897
#, no-c-format
msgid "boolean"
msgstr "boolean"
@@ -3068,13 +2196,8 @@
#. Tag: para
#: Security.xml:1437
#, no-c-format
-msgid ""
-"Creates a new user account, with the specified name and password. Returns "
-"<literal>true</literal> if successful, or <literal>false</literal> if not."
-msgstr ""
-"Crea un nuovo utente con il nome e la password specificate. Restituisce "
-"<literal>true</literal> se l'operazione si è conclusa con successo, "
-"altrimenti <literal>false</literal>."
+msgid "Creates a new user account, with the specified name and password. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
+msgstr "Crea un nuovo utente con il nome e la password specificate. Restituisce <literal>true</literal> se l'operazione si è conclusa con successo, altrimenti <literal>false</literal>."
#. Tag: literal
#: Security.xml:1447
@@ -3085,13 +2208,8 @@
#. Tag: para
#: Security.xml:1456
#, no-c-format
-msgid ""
-"Deletes the user account with the specified name. Returns <literal>true</"
-"literal> if successful, or <literal>false</literal> if not."
-msgstr ""
-"Elimina le informazioni dell'utente con il nome specificato. Restituisce "
-"<literal>true</literal> se l'operazione si è conclusa con successo, oppure "
-"<literal>false</literal>."
+msgid "Deletes the user account with the specified name. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
+msgstr "Elimina le informazioni dell'utente con il nome specificato. Restituisce <literal>true</literal> se l'operazione si è conclusa con successo, oppure <literal>false</literal>."
#. Tag: literal
#: Security.xml:1466
@@ -3102,13 +2220,8 @@
#. Tag: para
#: Security.xml:1475
#, no-c-format
-msgid ""
-"Creates a new role, with the specified name. Returns <literal>true</literal> "
-"if successful, or <literal>false</literal> if not."
-msgstr ""
-"Crea un nuovo ruolo con il nome specificato. Restituisce <literal>true</"
-"literal> se l'operazione si è conclusa con successo, oppure <literal>false</"
-"literal>."
+msgid "Creates a new role, with the specified name. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
+msgstr "Crea un nuovo ruolo con il nome specificato. Restituisce <literal>true</literal> se l'operazione si è conclusa con successo, oppure <literal>false</literal>."
#. Tag: literal
#: Security.xml:1485
@@ -3119,13 +2232,8 @@
#. Tag: para
#: Security.xml:1494
#, no-c-format
-msgid ""
-"Deletes the role with the specified name. Returns <literal>true</literal> if "
-"successful, or <literal>false</literal> if not."
-msgstr ""
-"Elimina il ruolo con il nome specificato. Restituisce <literal>true</"
-"literal> se l'operazione si è conclusa con successo, oppure <literal>false</"
-"literal>."
+msgid "Deletes the role with the specified name. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
+msgstr "Elimina il ruolo con il nome specificato. Restituisce <literal>true</literal> se l'operazione si è conclusa con successo, oppure <literal>false</literal>."
#. Tag: literal
#: Security.xml:1504
@@ -3136,14 +2244,8 @@
#. Tag: para
#: Security.xml:1513
#, no-c-format
-msgid ""
-"Enables the user account with the specified name. Accounts that are not "
-"enabled are not able to authenticate. Returns <literal>true</literal> if "
-"successful, or <literal>false</literal> if not."
-msgstr ""
-"Abilita l'utente con il nome specificato. Gli utenti che non sono abilitati "
-"non sono in grado di autenticarsi. Restituisce <literal>true</literal> se "
-"l'operazione si è conclusa con successo, oppure <literal>false</literal>."
+msgid "Enables the user account with the specified name. Accounts that are not enabled are not able to authenticate. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
+msgstr "Abilita l'utente con il nome specificato. Gli utenti che non sono abilitati non sono in grado di autenticarsi. Restituisce <literal>true</literal> se l'operazione si è conclusa con successo, oppure <literal>false</literal>."
#. Tag: literal
#: Security.xml:1524
@@ -3154,13 +2256,8 @@
#. Tag: para
#: Security.xml:1533
#, no-c-format
-msgid ""
-"Disables the user account with the specified name. Returns <literal>true</"
-"literal> if successful, or <literal>false</literal> if not."
-msgstr ""
-"Disabilita l'utente con il nome specificato. Restituisce <literal>true</"
-"literal> se l'operazione si è conclusa con successo, oppure <literal>false</"
-"literal>."
+msgid "Disables the user account with the specified name. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
+msgstr "Disabilita l'utente con il nome specificato. Restituisce <literal>true</literal> se l'operazione si è conclusa con successo, oppure <literal>false</literal>."
#. Tag: literal
#: Security.xml:1543
@@ -3171,13 +2268,8 @@
#. Tag: para
#: Security.xml:1552
#, no-c-format
-msgid ""
-"Changes the password for the user account with the specified name. Returns "
-"<literal>true</literal> if successful, or <literal>false</literal> if not."
-msgstr ""
-"Modifica la password dell'utente con il nome specificato. Restituisce "
-"<literal>true</literal> se l'operazione si è conclusa con successo, oppure "
-"<literal>false</literal>."
+msgid "Changes the password for the user account with the specified name. Returns <literal>true</literal> if successful, or <literal>false</literal> if not."
+msgstr "Modifica la password dell'utente con il nome specificato. Restituisce <literal>true</literal> se l'operazione si è conclusa con successo, oppure <literal>false</literal>."
#. Tag: literal
#: Security.xml:1562
@@ -3188,12 +2280,8 @@
#. Tag: para
#: Security.xml:1571
#, no-c-format
-msgid ""
-"Returns <literal>true</literal> if the specified user account is enabled, or "
-"<literal>false</literal> if it isn't."
-msgstr ""
-"Restituisce <literal>true</literal> se l'utente specificato è abilitato, "
-"oppure <literal>false</literal> se non lo è."
+msgid "Returns <literal>true</literal> if the specified user account is enabled, or <literal>false</literal> if it isn't."
+msgstr "Restituisce <literal>true</literal> se l'utente specificato è abilitato, oppure <literal>false</literal> se non lo è."
#. Tag: literal
#: Security.xml:1581
@@ -3204,16 +2292,8 @@
#. Tag: para
#: Security.xml:1590
#, no-c-format
-msgid ""
-"Grants the specified role to the specified user or role. The role must "
-"already exist for it to be granted. Returns <literal>true</literal> if the "
-"role is successfully granted, or <literal>false</literal> if it is already "
-"granted to the user."
-msgstr ""
-"Concede il ruolo specificato all'utente o al ruolo. Il ruolo deve già "
-"esistere per essere concesso. Restituisce <literal>true</literal> se il "
-"ruolo è stato concesso, oppure <literal>false</literal> se era già stato "
-"concesso all'utente."
+msgid "Grants the specified role to the specified user or role. The role must already exist for it to be granted. Returns <literal>true</literal> if the role is successfully granted, or <literal>false</literal> if it is already granted to the user."
+msgstr "Concede il ruolo specificato all'utente o al ruolo. Il ruolo deve già esistere per essere concesso. Restituisce <literal>true</literal> se il ruolo è stato concesso, oppure <literal>false</literal> se era già stato concesso all'utente."
#. Tag: literal
#: Security.xml:1601
@@ -3224,16 +2304,8 @@
#. Tag: para
#: Security.xml:1610
#, no-c-format
-msgid ""
-"Revokes the specified role from the specified user or role. Returns "
-"<literal>true</literal> if the specified user is a member of the role and it "
-"is successfully revoked, or <literal>false</literal> if the user is not a "
-"member of the role."
-msgstr ""
-"Revoca il ruolo specificato all'utente o al ruolo. Restituisce "
-"<literal>true</literal> se l'utente specificato era membro del ruolo e "
-"questo è stato revocato con successo, oppure <literal>false</literal> se "
-"l'utente non è un membro del ruolo."
+msgid "Revokes the specified role from the specified user or role. Returns <literal>true</literal> if the specified user is a member of the role and it is successfully revoked, or <literal>false</literal> if the user is not a member of the role."
+msgstr "Revoca il ruolo specificato all'utente o al ruolo. Restituisce <literal>true</literal> se l'utente specificato era membro del ruolo e questo è stato revocato con successo, oppure <literal>false</literal> se l'utente non è un membro del ruolo."
#. Tag: literal
#: Security.xml:1621
@@ -3244,22 +2316,23 @@
#. Tag: para
#: Security.xml:1630
#, no-c-format
-msgid ""
-"Returns <literal>true</literal> if the specified user exists, or "
-"<literal>false</literal> if it doesn't."
-msgstr ""
-"Restituisce <literal>true</literal> se l'utente specificato esiste, oppure "
-"<literal>false</literal> se non esiste."
+msgid "Returns <literal>true</literal> if the specified user exists, or <literal>false</literal> if it doesn't."
+msgstr "Restituisce <literal>true</literal> se l'utente specificato esiste, oppure <literal>false</literal> se non esiste."
#. Tag: literal
-#: Security.xml:1640 Security.xml:2041
+#: Security.xml:1640
+#: Security.xml:2041
#, no-c-format
msgid "listUsers()"
msgstr "listUsers()"
#. Tag: literal
-#: Security.xml:1645 Security.xml:1663 Security.xml:1681 Security.xml:1699
-#: Security.xml:1717 Security.xml:1798
+#: Security.xml:1645
+#: Security.xml:1663
+#: Security.xml:1681
+#: Security.xml:1699
+#: Security.xml:1717
+#: Security.xml:1798
#, no-c-format
msgid "List"
msgstr "listUsers(String filter)"
@@ -3279,15 +2352,13 @@
#. Tag: para
#: Security.xml:1667
#, no-c-format
-msgid ""
-"Returns a list of all user names filtered by the specified filter parameter, "
-"sorted in alpha-numeric order."
-msgstr ""
-"Restituisce una lista di tutti i nomi utente filtrata secondo il parametro "
-"di filtro specificato e in ordine alfanumerico."
+msgid "Returns a list of all user names filtered by the specified filter parameter, sorted in alpha-numeric order."
+msgstr "Restituisce una lista di tutti i nomi utente filtrata secondo il parametro di filtro specificato e in ordine alfanumerico."
#. Tag: literal
-#: Security.xml:1676 Security.xml:1793 Security.xml:2059
+#: Security.xml:1676
+#: Security.xml:1793
+#: Security.xml:2059
#, no-c-format
msgid "listRoles()"
msgstr "listRoles()"
@@ -3307,12 +2378,8 @@
#. Tag: para
#: Security.xml:1703
#, no-c-format
-msgid ""
-"Returns a list of the names of all the roles explicitly granted to the "
-"specified user name."
-msgstr ""
-"Restituisce una lista dei nomi di tutti i ruoli esplicitamente concessi "
-"all'utente con il nome specificato."
+msgid "Returns a list of the names of all the roles explicitly granted to the specified user name."
+msgstr "Restituisce una lista dei nomi di tutti i ruoli esplicitamente concessi all'utente con il nome specificato."
#. Tag: literal
#: Security.xml:1712
@@ -3323,22 +2390,8 @@
#. Tag: para
#: Security.xml:1721
#, no-c-format
-msgid ""
-"Returns a list of the names of all the roles implicitly granted to the "
-"specified user name. Implicitly granted roles include those that are not "
-"directly granted to a user, rather they are granted to the roles that the "
-"user is a member of. For example, is the <literal>admin</literal> role is a "
-"member of the <literal>user</literal> role, and a user is a member of the "
-"<literal>admin</literal> role, then the implied roles for the user are both "
-"the <literal>admin</literal>, and <literal>user</literal> roles."
-msgstr ""
-"Restituisce la lista dei nomi di tutti i ruoli implicitamente concessi "
-"all'utente specificato. I ruoli implicitamente concessi includono quelli che "
-"non sono concessi direttamente all'utente, ma sono concessi ai ruoli di cui "
-"l'utente è membro. Ad esempio, se il ruolo <literal>admin</literal> è un "
-"membro del ruolo <literal>user</literal> e un utente è membro del ruolo "
-"<literal>admin</literal>, allora i ruoli impliciti per l'utente sono sia "
-"<literal>admin</literal> che <literal>user</literal>."
+msgid "Returns a list of the names of all the roles implicitly granted to the specified user name. Implicitly granted roles include those that are not directly granted to a user, rather they are granted to the roles that the user is a member of. For example, is the <literal>admin</literal> role is a member of the <literal>user</literal> role, and a user is a member of the <literal>admin</literal> role, then the implied roles for the user are both the <literal>admin</literal>, and <literal>user</literal> roles."
+msgstr "Restituisce la lista dei nomi di tutti i ruoli implicitamente concessi all'utente specificato. I ruoli implicitamente concessi includono quelli che non sono concessi direttamente all'utente, ma sono concessi ai ruoli di cui l'utente è membro. Ad esempio, se il ruolo <literal>admin</literal> è un membro del ruolo <literal>user</literal> e un utente è membro del ruolo <literal>admin</literal>, allora i ruoli impliciti per l'utente sono sia <literal>admin</literal> che <literal>user</literal>."
#. Tag: literal
#: Security.xml:1735
@@ -3349,21 +2402,8 @@
#. Tag: para
#: Security.xml:1744
#, no-c-format
-msgid ""
-"Authenticates the specified username and password using the configured "
-"Identity Store. Returns <literal>true</literal> if successful or "
-"<literal>false</literal> if authentication failed. Successful authentication "
-"implies nothing beyond the return value of the method. It does not change "
-"the state of the <literal>Identity</literal> component - to perform a proper "
-"Seam login the <literal>Identity.login()</literal> must be used instead."
-msgstr ""
-"Autenticazione il nome utente e la password specificati usando l'Identity "
-"Store configurato. Restituisce <literal>true</literal> se conclude con "
-"successo, oppure <literal>false</literal> se l'autentifica fallisce. Il "
-"successo dell'autenticazione non implica niente oltre al valore restituito "
-"dal metodo. Non cambia lo stato del componente <literal>Identity</literal>. "
-"Per eseguire un vero e proprio login deve essere invece usato il metodo "
-"<literal>Identity.login()</literal>."
+msgid "Authenticates the specified username and password using the configured Identity Store. Returns <literal>true</literal> if successful or <literal>false</literal> if authentication failed. Successful authentication implies nothing beyond the return value of the method. It does not change the state of the <literal>Identity</literal> component - to perform a proper Seam login the <literal>Identity.login()</literal> must be used instead."
+msgstr "Autenticazione il nome utente e la password specificati usando l'Identity Store configurato. Restituisce <literal>true</literal> se conclude con successo, oppure <literal>false</literal> se l'autentifica fallisce. Il successo dell'autenticazione non implica niente oltre al valore restituito dal metodo. Non cambia lo stato del componente <literal>Identity</literal>. Per eseguire un vero e proprio login deve essere invece usato il metodo <literal>Identity.login()</literal>."
#. Tag: literal
#: Security.xml:1757
@@ -3374,12 +2414,8 @@
#. Tag: para
#: Security.xml:1766
#, no-c-format
-msgid ""
-"Adds the specified role as a member of the specified group. Returns true if "
-"the operation is successful."
-msgstr ""
-"Aggiunge il ruolo specificato come membro del gruppo specificato. "
-"Restituisce <literal>true</literal> se l'operazione va a buon fine."
+msgid "Adds the specified role as a member of the specified group. Returns true if the operation is successful."
+msgstr "Aggiunge il ruolo specificato come membro del gruppo specificato. Restituisce <literal>true</literal> se l'operazione va a buon fine."
#. Tag: literal
#: Security.xml:1775
@@ -3390,12 +2426,8 @@
#. Tag: para
#: Security.xml:1784
#, no-c-format
-msgid ""
-"Removes the specified role from the specified group. Returns true if the "
-"operation is successful."
-msgstr ""
-"Rimuove il ruolo specificato dal gruppo specificato. Restituisce "
-"<literal>true</literal> se l'operazione va a buon fine."
+msgid "Removes the specified role from the specified group. Returns true if the operation is successful."
+msgstr "Rimuove il ruolo specificato dal gruppo specificato. Restituisce <literal>true</literal> se l'operazione va a buon fine."
#. Tag: para
#: Security.xml:1802
@@ -3406,18 +2438,8 @@
#. Tag: para
#: Security.xml:1812
#, no-c-format
-msgid ""
-"Using the Identity Management API requires that the calling user has the "
-"appropriate authorization to invoke its methods. The following table "
-"describes the permission requirements for each of the methods in "
-"<literal>IdentityManager</literal>. The permission targets listed below are "
-"literal String values."
-msgstr ""
-"L'uso delle API per la gestione delle identità richiede che l'utente "
-"chiamante abbia le autorizzazioni appropriate per invocare i suoi metodi. La "
-"seguente tabella descrive i permessi richiesti per ciascuno dei metodi in "
-"<literal>IdentityManager</literal>. Gli oggetti dei permessi elencati qui "
-"sotto sono valori stringa."
+msgid "Using the Identity Management API requires that the calling user has the appropriate authorization to invoke its methods. The following table describes the permission requirements for each of the methods in <literal>IdentityManager</literal>. The permission targets listed below are literal String values."
+msgstr "L'uso delle API per la gestione delle identità richiede che l'utente chiamante abbia le autorizzazioni appropriate per invocare i suoi metodi. La seguente tabella descrive i permessi richiesti per ciascuno dei metodi in <literal>IdentityManager</literal>. Gli oggetti dei permessi elencati qui sotto sono valori stringa."
#. Tag: title
#: Security.xml:1819
@@ -3426,13 +2448,15 @@
msgstr "Permessi di sicurezza nella gestione delle identità"
#. Tag: para
-#: Security.xml:1831 Security.xml:3961
+#: Security.xml:1831
+#: Security.xml:3961
#, no-c-format
msgid "Permission Target"
msgstr "Oggetto del permesso"
#. Tag: para
-#: Security.xml:1834 Security.xml:3964
+#: Security.xml:1834
+#: Security.xml:3964
#, no-c-format
msgid "Permission Action"
msgstr "Azione del permesso"
@@ -3444,15 +2468,23 @@
msgstr "createUser()"
#. Tag: literal
-#: Security.xml:1848 Security.xml:1866 Security.xml:1920 Security.xml:1938
-#: Security.xml:1956 Security.xml:1974 Security.xml:1992 Security.xml:2010
-#: Security.xml:2028 Security.xml:2046
+#: Security.xml:1848
+#: Security.xml:1866
+#: Security.xml:1920
+#: Security.xml:1938
+#: Security.xml:1956
+#: Security.xml:1974
+#: Security.xml:1992
+#: Security.xml:2010
+#: Security.xml:2028
+#: Security.xml:2046
#, no-c-format
msgid "seam.user"
msgstr "seam.user"
#. Tag: literal
-#: Security.xml:1853 Security.xml:1889
+#: Security.xml:1853
+#: Security.xml:1889
#, no-c-format
msgid "create"
msgstr "create"
@@ -3464,7 +2496,8 @@
msgstr "deleteUser()"
#. Tag: literal
-#: Security.xml:1871 Security.xml:1907
+#: Security.xml:1871
+#: Security.xml:1907
#, no-c-format
msgid "delete"
msgstr "delete"
@@ -3476,7 +2509,10 @@
msgstr "createRole()"
#. Tag: literal
-#: Security.xml:1884 Security.xml:1902 Security.xml:2064 Security.xml:2082
+#: Security.xml:1884
+#: Security.xml:1902
+#: Security.xml:2064
+#: Security.xml:2082
#: Security.xml:2100
#, no-c-format
msgid "seam.role"
@@ -3495,8 +2531,13 @@
msgstr "enableUser()"
#. Tag: literal
-#: Security.xml:1925 Security.xml:1943 Security.xml:1961 Security.xml:1997
-#: Security.xml:2015 Security.xml:2087 Security.xml:2105
+#: Security.xml:1925
+#: Security.xml:1943
+#: Security.xml:1961
+#: Security.xml:1997
+#: Security.xml:2015
+#: Security.xml:2087
+#: Security.xml:2105
#, no-c-format
msgid "update"
msgstr "update"
@@ -3520,7 +2561,10 @@
msgstr "isUserEnabled()"
#. Tag: literal
-#: Security.xml:1979 Security.xml:2033 Security.xml:2051 Security.xml:2069
+#: Security.xml:1979
+#: Security.xml:2033
+#: Security.xml:2051
+#: Security.xml:2069
#, no-c-format
msgid "read"
msgstr "read"
@@ -3558,14 +2602,8 @@
#. Tag: para
#: Security.xml:2113
#, no-c-format
-msgid ""
-"The following code listing provides an example set of security rules that "
-"grants access to all Identity Management-related methods to members of the "
-"<literal>admin</literal> role:"
-msgstr ""
-"Il seguente listato fornisce un esempio con un insieme di regole di "
-"sicurezza che concedono al ruolo <literal>admin</literal> l'accesso a tutti "
-"i metodi relativi alla gestione delle identità:"
+msgid "The following code listing provides an example set of security rules that grants access to all Identity Management-related methods to members of the <literal>admin</literal> role:"
+msgstr "Il seguente listato fornisce un esempio con un insieme di regole di sicurezza che concedono al ruolo <literal>admin</literal> l'accesso a tutti i metodi relativi alla gestione delle identità:"
#. Tag: programlisting
#: Security.xml:2118
@@ -3622,18 +2660,8 @@
#. Tag: para
#: Security.xml:2127
#, no-c-format
-msgid ""
-"The security API produces a number of default faces messages for various "
-"security-related events. The following table lists the message keys that can "
-"be used to override these messages by specifying them in a <literal>message."
-"properties</literal> resource file. To suppress the message, just put the "
-"key with an empty value in the resource file."
-msgstr ""
-"Le API di sicurezza producono una serie di messaggi di default per i diversi "
-"eventi relaivi alla sicurezza. La seguente tabella elenca le chiavi dei "
-"messaggi che possono essere usate per sovrascrivere questi messaggi "
-"specificandoli in un file <literal>message.properties</literal>. Per "
-"sopprimere un messaggio basta mettere nel file la chiave con un valore vuoto."
+msgid "The security API produces a number of default faces messages for various security-related events. The following table lists the message keys that can be used to override these messages by specifying them in a <literal>message.properties</literal> resource file. To suppress the message, just put the key with an empty value in the resource file."
+msgstr "Le API di sicurezza producono una serie di messaggi di default per i diversi eventi relaivi alla sicurezza. La seguente tabella elenca le chiavi dei messaggi che possono essere usate per sovrascrivere questi messaggi specificandoli in un file <literal>message.properties</literal>. Per sopprimere un messaggio basta mettere nel file la chiave con un valore vuoto."
#. Tag: title
#: Security.xml:2135
@@ -3656,12 +2684,8 @@
#. Tag: para
#: Security.xml:2161
#, no-c-format
-msgid ""
-"This message is produced when a user successfully logs in via the security "
-"API."
-msgstr ""
-"Questo messaggio viene prodotto quando un utente porta a buon fine un login "
-"tramite le API di sicurezza."
+msgid "This message is produced when a user successfully logs in via the security API."
+msgstr "Questo messaggio viene prodotto quando un utente porta a buon fine un login tramite le API di sicurezza."
#. Tag: literal
#: Security.xml:2169
@@ -3672,14 +2696,8 @@
#. Tag: para
#: Security.xml:2173
#, no-c-format
-msgid ""
-"This message is produced when the login process fails, either because the "
-"user provided an incorrect username or password, or because authentication "
-"failed in some other way."
-msgstr ""
-"Questo messaggio viene prodotto quando il processo di login fallisce, perché "
-"il nome utente e la password forniti dall'utente non sono corretti, oppure "
-"perché l'autenticazione è fallita per qualche altro motivo."
+msgid "This message is produced when the login process fails, either because the user provided an incorrect username or password, or because authentication failed in some other way."
+msgstr "Questo messaggio viene prodotto quando il processo di login fallisce, perché il nome utente e la password forniti dall'utente non sono corretti, oppure perché l'autenticazione è fallita per qualche altro motivo."
#. Tag: literal
#: Security.xml:2182
@@ -3690,14 +2708,8 @@
#. Tag: para
#: Security.xml:2186
#, no-c-format
-msgid ""
-"This message is produced when a user attempts to perform an action or access "
-"a page that requires a security check, and the user is not currently "
-"authenticated."
-msgstr ""
-"Questo messaggio viene prodotto quando un utente tenta di eseguire un'azione "
-"o di accedere ad una pagina che richiede un controllo di sicurezza e "
-"l'utente non è al momento autenticato."
+msgid "This message is produced when a user attempts to perform an action or access a page that requires a security check, and the user is not currently authenticated."
+msgstr "Questo messaggio viene prodotto quando un utente tenta di eseguire un'azione o di accedere ad una pagina che richiede un controllo di sicurezza e l'utente non è al momento autenticato."
#. Tag: literal
#: Security.xml:2195
@@ -3708,12 +2720,8 @@
#. Tag: para
#: Security.xml:2199
#, no-c-format
-msgid ""
-"This message is produced when a user that is already authenticated attempts "
-"to log in again."
-msgstr ""
-"Questo messaggio viene prodotto quando un utente che è già autenticato tenta "
-"di eseguire di nuovo il login."
+msgid "This message is produced when a user that is already authenticated attempts to log in again."
+msgstr "Questo messaggio viene prodotto quando un utente che è già autenticato tenta di eseguire di nuovo il login."
#. Tag: title
#: Security.xml:2210
@@ -3724,21 +2732,8 @@
#. Tag: para
#: Security.xml:2212
#, no-c-format
-msgid ""
-"There are a number of authorization mechanisms provided by the Seam Security "
-"API for securing access to components, component methods, and pages. This "
-"section describes each of these. An important thing to note is that if you "
-"wish to use any of the advanced features (such as rule-based permissions) "
-"then your <literal>components.xml</literal> may need to be configured to "
-"support this - see the Configuration section above."
-msgstr ""
-"Ci sono diversi meccanismi di autorizzazione forniti dalle API di sicurezza "
-"di Seam per rendere sicuro l'accesso ai componenti, ai metodi dei componenti "
-"e alle pagine. Questo paragrafo descrive ognuno di essi. Un aspetto "
-"importante da notare è che qualora si voglia utilizzare una delle "
-"caratteristiche avanzate (come i permessi basati sulle regole) il "
-"<literal>components.xml</literal> potrebbe dover essere configurato per "
-"gestirle. Vedi il paragrafo Configurazione più sopra."
+msgid "There are a number of authorization mechanisms provided by the Seam Security API for securing access to components, component methods, and pages. This section describes each of these. An important thing to note is that if you wish to use any of the advanced features (such as rule-based permissions) then your <literal>components.xml</literal> may need to be configured to support this - see the Configuration section above."
+msgstr "Ci sono diversi meccanismi di autorizzazione forniti dalle API di sicurezza di Seam per rendere sicuro l'accesso ai componenti, ai metodi dei componenti e alle pagine. Questo paragrafo descrive ognuno di essi. Un aspetto importante da notare è che qualora si voglia utilizzare una delle caratteristiche avanzate (come i permessi basati sulle regole) il <literal>components.xml</literal> potrebbe dover essere configurato per gestirle. Vedi il paragrafo Configurazione più sopra."
#. Tag: title
#: Security.xml:2221
@@ -3749,21 +2744,8 @@
#. Tag: para
#: Security.xml:2223
#, no-c-format
-msgid ""
-"Seam Security is built around the premise of users being granted roles and/"
-"or permissions, allowing them to perform operations that may not otherwise "
-"be permissible for users without the necessary security privileges. Each of "
-"the authorization mechanisms provided by the Seam Security API are built "
-"upon this core concept of roles and permissions, with an extensible "
-"framework providing multiple ways to secure application resources."
-msgstr ""
-"La sicurezza di Seam è costruita intorno alla premessa per cui agli utenti "
-"vengono concessi ruoli e/o permessi, consentendo loro di eseguire operazioni "
-"che non sarebbero altrimenti permesse agli utenti senza i necessari "
-"privilegi di sicurezza. Ognuno dei meccanismi di autorizzazione forniti "
-"dalle API di sicurezza di Seam è costruito intorno a questo concetto "
-"principale di ruoli e permessi, con un framework espandibile che fornisce "
-"più modi per rendere sicure le risorse di un'applicazione."
+msgid "Seam Security is built around the premise of users being granted roles and/or permissions, allowing them to perform operations that may not otherwise be permissible for users without the necessary security privileges. Each of the authorization mechanisms provided by the Seam Security API are built upon this core concept of roles and permissions, with an extensible framework providing multiple ways to secure application resources."
+msgstr "La sicurezza di Seam è costruita intorno alla premessa per cui agli utenti vengono concessi ruoli e/o permessi, consentendo loro di eseguire operazioni che non sarebbero altrimenti permesse agli utenti senza i necessari privilegi di sicurezza. Ognuno dei meccanismi di autorizzazione forniti dalle API di sicurezza di Seam è costruito intorno a questo concetto principale di ruoli e permessi, con un framework espandibile che fornisce più modi per rendere sicure le risorse di un'applicazione."
#. Tag: title
#: Security.xml:2231
@@ -3774,23 +2756,8 @@
#. Tag: para
#: Security.xml:2233
#, no-c-format
-msgid ""
-"A role is a <emphasis>group</emphasis>, or <emphasis>type</emphasis>, of "
-"user that may have been granted certain privileges for performing one or "
-"more specific actions within an application. They are simple constructs, "
-"consisting of just a name such as \"admin\", \"user\", \"customer\", etc. "
-"They can be granted either to users (or in some cases to other roles), and "
-"are used to create logical groups of users for the convenient assignment of "
-"specific application privileges."
-msgstr ""
-"Un ruolo è un <emphasis>gruppo</emphasis>, o un <emphasis>tipo</emphasis>, "
-"di utente al quale possono essere concessi certi privilegi per eseguire una "
-"o più azioni specifiche nell'ambito dell'applicazione. Essi sono dei "
-"semplici costrutti consistenti solo di un nome che \"amministratore\", "
-"\"utente\", \"cliente\", ecc. Possono sia essere concessi ad un utente (o in "
-"alcuni casi ad altri ruoli) che essere usati per creare gruppi logici di "
-"utenti per facilitare l'assegnazione di determinati privilegi "
-"dell'applicazione."
+msgid "A role is a <emphasis>group</emphasis>, or <emphasis>type</emphasis>, of user that may have been granted certain privileges for performing one or more specific actions within an application. They are simple constructs, consisting of just a name such as \"admin\", \"user\", \"customer\", etc. They can be granted either to users (or in some cases to other roles), and are used to create logical groups of users for the convenient assignment of specific application privileges."
+msgstr "Un ruolo è un <emphasis>gruppo</emphasis>, o un <emphasis>tipo</emphasis>, di utente al quale possono essere concessi certi privilegi per eseguire una o più azioni specifiche nell'ambito dell'applicazione. Essi sono dei semplici costrutti consistenti solo di un nome che \"amministratore\", \"utente\", \"cliente\", ecc. Possono sia essere concessi ad un utente (o in alcuni casi ad altri ruoli) che essere usati per creare gruppi logici di utenti per facilitare l'assegnazione di determinati privilegi dell'applicazione."
#. Tag: title
#: Security.xml:2251
@@ -3801,43 +2768,14 @@
#. Tag: para
#: Security.xml:2253
#, no-c-format
-msgid ""
-"A permission is a privilege (sometimes once-off) for performing a single, "
-"specific action. It is entirely possible to build an application using "
-"nothing but permissions, however roles offer a higher level of convenience "
-"when granting privileges to groups of users. They are slightly more complex "
-"in structure than roles, essentially consisting of three \"aspects\"; a "
-"target, an action, and a recipient. The target of a permission is the object "
-"(or an arbitrary name or class) for which a particular action is allowed to "
-"be performed by a specific recipient (or user). For example, the user \"Bob"
-"\" may have permission to delete customer objects. In this case, the "
-"permission target may be \"customer\", the permission action would be "
-"\"delete\" and the recipient would be \"Bob\"."
-msgstr ""
-"Un permesso è un privilegio (a volte una-tantum) per eseguire una singola, "
-"specifica azione. E' del tutto possibile costruire un'applicazione usando "
-"nient'altro che i privilegi, comunque i ruoli offrono un livello di "
-"facilitazione più alto quando si tratta di concedere dei privilegi a gruppi "
-"di utenti. Essi sono leggermente più complessi nella struttura rispetto ai "
-"ruoli ed essenzialmente consistono di tre \"aspetti\": un obiettivo , "
-"un'azione e un destinatario. L'obiettivo di un permesso è l'oggetto (o un "
-"nome arbitrario o una classe) per il quale è consentito di eseguire una "
-"determinata azione da parte di uno specifico destinatario (o utente). Ad "
-"esempio, l'utente \"Roberto\" può avere il permesso di cancellare gli "
-"oggetti cliente. In questo caso l'obiettivo del permesso può essere \"clienti"
-"\", l'azione del permesso sarà \"cancella\" e il recipiente sarà \"Roberto\"."
+msgid "A permission is a privilege (sometimes once-off) for performing a single, specific action. It is entirely possible to build an application using nothing but permissions, however roles offer a higher level of convenience when granting privileges to groups of users. They are slightly more complex in structure than roles, essentially consisting of three \"aspects\"; a target, an action, and a recipient. The target of a permission is the object (or an arbitrary name or class) for which a particular action is allowed to be performed by a specific recipient (or user). For example, the user \"Bob\" may have permission to delete customer objects. In this case, the permission target may be \"customer\", the permission action would be \"delete\" and the recipient would be \"Bob\"."
+msgstr "Un permesso è un privilegio (a volte una-tantum) per eseguire una singola, specifica azione. E' del tutto possibile costruire un'applicazione usando nient'altro che i privilegi, comunque i ruoli offrono un livello di facilitazione più alto quando si tratta di concedere dei privilegi a gruppi di utenti. Essi sono leggermente più complessi nella struttura rispetto ai ruoli ed essenzialmente consistono di tre \"aspetti\": un obiettivo , un'azione e un destinatario. L'obiettivo di un permesso è l'oggetto (o un nome arbitrario o una classe) per il quale è consentito di eseguire una determinata azione da parte di uno specifico destinatario (o utente). Ad esempio, l'utente \"Roberto\" può avere il permesso di cancellare gli oggetti cliente. In questo caso l'obiettivo del permesso può essere \"clienti\", l'azione del permesso sarà \"cancella\" e il recipiente sarà \"Roberto\"."
#. Tag: para
#: Security.xml:2273
#, no-c-format
-msgid ""
-"Within this documentation, permissions are generally represented in the form "
-"<literal>target:action</literal> (omitting the recipient, although in "
-"reality one is always required)."
-msgstr ""
-"Nell'ambito di questa documentazione i permessi sono generalmente "
-"rappresentati nella forma <literal>obiettivo:azione</literal> (omettendo il "
-"destinatario, benché nella realtà sarà sempre richiesto)."
+msgid "Within this documentation, permissions are generally represented in the form <literal>target:action</literal> (omitting the recipient, although in reality one is always required)."
+msgstr "Nell'ambito di questa documentazione i permessi sono generalmente rappresentati nella forma <literal>obiettivo:azione</literal> (omettendo il destinatario, benché nella realtà sarà sempre richiesto)."
#. Tag: title
#: Security.xml:2282
@@ -3848,12 +2786,8 @@
#. Tag: para
#: Security.xml:2284
#, no-c-format
-msgid ""
-"Let's start by examining the simplest form of authorization, component "
-"security, starting with the <literal>@Restrict</literal> annotation."
-msgstr ""
-"Iniziamo ad esaminare la forma più semplice di autorizzazione, la sicurezza "
-"dei componenti, inziando con l'annotazione <literal>@Restrict</literal>."
+msgid "Let's start by examining the simplest form of authorization, component security, starting with the <literal>@Restrict</literal> annotation."
+msgstr "Iniziamo ad esaminare la forma più semplice di autorizzazione, la sicurezza dei componenti, inziando con l'annotazione <literal>@Restrict</literal>."
#. Tag: title
#: Security.xml:2290
@@ -3864,17 +2798,8 @@
#. Tag: para
#: Security.xml:2292
#, no-c-format
-msgid ""
-"While using the <literal>@Restrict</literal> annotation provides a powerful "
-"and flexible method for security component methods due to its ability to "
-"support EL expressions, it is recommended that the typesafe equivalent "
-"(described later) be used, at least for the compile-time safety it provides."
-msgstr ""
-"Benché l'uso dell'annotazione <literal>@Restrict</literal> fornisca un "
-"metodo flessibile e potente per rendere sicuri i componenti grazie alla sua "
-"possibilità di gestire le espressione EL, è consigliabile usare "
-"l'equivalente tipizzato (descritto più avanti), se non altro per la "
-"sicurezza a livello di compilazione che fornisce."
+msgid "While using the <literal>@Restrict</literal> annotation provides a powerful and flexible method for security component methods due to its ability to support EL expressions, it is recommended that the typesafe equivalent (described later) be used, at least for the compile-time safety it provides."
+msgstr "Benché l'uso dell'annotazione <literal>@Restrict</literal> fornisca un metodo flessibile e potente per rendere sicuri i componenti grazie alla sua possibilità di gestire le espressione EL, è consigliabile usare l'equivalente tipizzato (descritto più avanti), se non altro per la sicurezza a livello di compilazione che fornisce."
#. Tag: title
#: Security.xml:2300
@@ -3885,39 +2810,14 @@
#. Tag: para
#: Security.xml:2302
#, no-c-format
-msgid ""
-"Seam components may be secured either at the method or the class level, "
-"using the <literal>@Restrict</literal> annotation. If both a method and it's "
-"declaring class are annotated with <literal>@Restrict</literal>, the method "
-"restriction will take precedence (and the class restriction will not apply). "
-"If a method invocation fails a security check, then an exception will be "
-"thrown as per the contract for <literal>Identity.checkRestriction()</"
-"literal> (see Inline Restrictions). A <literal>@Restrict</literal> on just "
-"the component class itself is equivalent to adding <literal>@Restrict</"
-"literal> to each of its methods."
-msgstr ""
-"I componenti Seam possono essere resi sicuri sia a livello di metodo che a "
-"livello di classe usando l'annotazione <literal>@Restrict</literal>. Se sia "
-"un metodo che la classe in cui è dichiarato sono annotati con "
-"<literal>@Restrict</literal>, la restrizione sul metodo ha la precedenza (e "
-"la restrizione sulla classe non si applica). Se nell'invocazione di un "
-"metodo fallisce il controllo di sicurezza, viene lanciata un'eccezione come "
-"definito nel contratto di <literal>Identity.checkRestriction()</literal> "
-"(vedi Restrizioni in linea). Una <literal>@Restrict</literal> solo sulla "
-"classe del componente stesso è equivalente ad aggiungere <literal>@Restrict</"
-"literal> a ciascuno dei suoi metodi."
+msgid "Seam components may be secured either at the method or the class level, using the <literal>@Restrict</literal> annotation. If both a method and it's declaring class are annotated with <literal>@Restrict</literal>, the method restriction will take precedence (and the class restriction will not apply). If a method invocation fails a security check, then an exception will be thrown as per the contract for <literal>Identity.checkRestriction()</literal> (see Inline Restrictions). A <literal>@Restrict</literal> on just the component class itself is equivalent to adding <literal>@Restrict</literal> to each of its methods."
+msgstr "I componenti Seam possono essere resi sicuri sia a livello di metodo che a livello di classe usando l'annotazione <literal>@Restrict</literal>. Se sia un metodo che la classe in cui è dichiarato sono annotati con <literal>@Restrict</literal>, la restrizione sul metodo ha la precedenza (e la restrizione sulla classe non si applica). Se nell'invocazione di un metodo fallisce il controllo di sicurezza, viene lanciata un'eccezione come definito nel contratto di <literal>Identity.checkRestriction()</literal> (vedi Restrizioni in linea). Una <literal>@Restrict</literal> solo sulla classe del componente stesso è equivalente ad aggiungere <literal>@Restrict</literal> a ciascuno dei suoi metodi."
#. Tag: para
#: Security.xml:2312
#, no-c-format
-msgid ""
-"An empty <literal>@Restrict</literal> implies a permission check of "
-"<literal>componentName:methodName</literal>. Take for example the following "
-"component method:"
-msgstr ""
-"Una <literal>@Restrict</literal> vuota implica un controllo di permesso per "
-"<literal>nomeComponente:nomeMetodo</literal>. Prendiamo ad esempio il "
-"seguente metodo di un componente:"
+msgid "An empty <literal>@Restrict</literal> implies a permission check of <literal>componentName:methodName</literal>. Take for example the following component method:"
+msgstr "Una <literal>@Restrict</literal> vuota implica un controllo di permesso per <literal>nomeComponente:nomeMetodo</literal>. Prendiamo ad esempio il seguente metodo di un componente:"
#. Tag: programlisting
#: Security.xml:2317
@@ -3940,17 +2840,8 @@
#. Tag: para
#: Security.xml:2319
#, no-c-format
-msgid ""
-"In this example, the implied permission required to call the <literal>delete"
-"()</literal> method is <literal>account:delete</literal>. The equivalent of "
-"this would be to write <literal>@Restrict(\"#{s:hasPermission"
-"('account','delete')}\")</literal>. Now let's look at another example:"
-msgstr ""
-"In questo esempio il permesso richiesto per chiamare il metodo "
-"<literal>delete()</literal> è <literal>account:delete</literal>. "
-"L'equivalente di ciò sarebbe stato scrivere <literal>@Restrict(\"#{s:"
-"hasPermission('account','delete')}\")</literal>. Ora vediamo un altro "
-"esempio:"
+msgid "In this example, the implied permission required to call the <literal>delete()</literal> method is <literal>account:delete</literal>. The equivalent of this would be to write <literal>@Restrict(\"#{s:hasPermission('account','delete')}\")</literal>. Now let's look at another example:"
+msgstr "In questo esempio il permesso richiesto per chiamare il metodo <literal>delete()</literal> è <literal>account:delete</literal>. L'equivalente di ciò sarebbe stato scrivere <literal>@Restrict(\"#{s:hasPermission('account','delete')}\")</literal>. Ora vediamo un altro esempio:"
#. Tag: programlisting
#: Security.xml:2326
@@ -3981,54 +2872,20 @@
#. Tag: para
#: Security.xml:2328
#, no-c-format
-msgid ""
-"This time, the component class itself is annotated with <literal>@Restrict</"
-"literal>. This means that any methods without an overriding "
-"<literal>@Restrict</literal> annotation require an implicit permission "
-"check. In the case of this example, the <literal>insert()</literal> method "
-"requires a permission of <literal>account:insert</literal>, while the "
-"<literal>delete()</literal> method requires that the user is a member of the "
-"<literal>admin</literal> role."
-msgstr ""
-"Questa volta la classe stessa del componente è annotata con "
-"<literal>@Restrict</literal>. Ciò significa che tutti i metodi senza una "
-"annotazione <literal>@Restrict</literal> a sovrascrivere, richiedono un "
-"controllo implicito di permesso. Nel caso di questo esempio il metodo "
-"<literal>insert()</literal> richiede un permesso per <literal>account:"
-"insert</literal>, mentre il metodo <literal>delete()</literal> richiede che "
-"l'utente sia membro del ruolo <literal>admin</literal>."
+msgid "This time, the component class itself is annotated with <literal>@Restrict</literal>. This means that any methods without an overriding <literal>@Restrict</literal> annotation require an implicit permission check. In the case of this example, the <literal>insert()</literal> method requires a permission of <literal>account:insert</literal>, while the <literal>delete()</literal> method requires that the user is a member of the <literal>admin</literal> role."
+msgstr "Questa volta la classe stessa del componente è annotata con <literal>@Restrict</literal>. Ciò significa che tutti i metodi senza una annotazione <literal>@Restrict</literal> a sovrascrivere, richiedono un controllo implicito di permesso. Nel caso di questo esempio il metodo <literal>insert()</literal> richiede un permesso per <literal>account:insert</literal>, mentre il metodo <literal>delete()</literal> richiede che l'utente sia membro del ruolo <literal>admin</literal>."
#. Tag: para
#: Security.xml:2336
#, no-c-format
-msgid ""
-"Before we go any further, let's address the <literal>#{s:hasRole()}</"
-"literal> expression seen in the above example. Both <literal>s:hasRole</"
-"literal> and <literal>s:hasPermission</literal> are EL functions, which "
-"delegate to the correspondingly named methods of the <literal>Identity</"
-"literal> class. These functions can be used within any EL expression "
-"throughout the entirety of the security API."
-msgstr ""
-"Prima di andare avanti, esaminiamo l'espressione <literal>#{s:hasRole()}</"
-"literal> vista nell'esempio precedente. Sia <literal>s:hasRole()</literal> "
-"che <literal>s:hasPermission</literal> sono funzioni EL, le quali delegano "
-"ai metodi con i nomi corrispondenti nella classe <literal>Identity</"
-"literal>. Queste funzioni possono essere usate all'interno di una "
-"espressione EL in tutte le API di sicurezza."
+msgid "Before we go any further, let's address the <literal>#{s:hasRole()}</literal> expression seen in the above example. Both <literal>s:hasRole</literal> and <literal>s:hasPermission</literal> are EL functions, which delegate to the correspondingly named methods of the <literal>Identity</literal> class. These functions can be used within any EL expression throughout the entirety of the security API."
+msgstr "Prima di andare avanti, esaminiamo l'espressione <literal>#{s:hasRole()}</literal> vista nell'esempio precedente. Sia <literal>s:hasRole()</literal> che <literal>s:hasPermission</literal> sono funzioni EL, le quali delegano ai metodi con i nomi corrispondenti nella classe <literal>Identity</literal>. Queste funzioni possono essere usate all'interno di una espressione EL in tutte le API di sicurezza."
#. Tag: para
#: Security.xml:2343
#, no-c-format
-msgid ""
-"Being an EL expression, the value of the <literal>@Restrict</literal> "
-"annotation may reference any objects that exist within a Seam context. This "
-"is extremely useful when performing permission checks for a specific object "
-"instance. Look at this example:"
-msgstr ""
-"Essendo un'espressione EL, il valore dell'annotazione <literal>@Restrict</"
-"literal> può fare riferimento a qualunque oggetto che sia presente in un "
-"contesto Seam. Ciò è estremamente utile quando si eseguono i controlli sui "
-"permessi per una specifica istanza di un oggetto. Ad esempio:"
+msgid "Being an EL expression, the value of the <literal>@Restrict</literal> annotation may reference any objects that exist within a Seam context. This is extremely useful when performing permission checks for a specific object instance. Look at this example:"
+msgstr "Essendo un'espressione EL, il valore dell'annotazione <literal>@Restrict</literal> può fare riferimento a qualunque oggetto che sia presente in un contesto Seam. Ciò è estremamente utile quando si eseguono i controlli sui permessi per una specifica istanza di un oggetto. Ad esempio:"
#. Tag: programlisting
#: Security.xml:2349
@@ -4055,22 +2912,8 @@
#. Tag: para
#: Security.xml:2351
#, no-c-format
-msgid ""
-"The interesting thing to note from this example is the reference to "
-"<literal>selectedAccount</literal> seen within the <literal>hasPermission()</"
-"literal> function call. The value of this variable will be looked up from "
-"within the Seam context, and passed to the <literal>hasPermission()</"
-"literal> method in <literal>Identity</literal>, which in this case can then "
-"determine if the user has the required permission for modifying the "
-"specified <literal>Account</literal> object."
-msgstr ""
-"La cosa interessante da notare in questo esempio è il riferimento a "
-"<literal>selectedAccount</literal> che si vede all'interno della chiamata "
-"alla funzione <literal>hasPermission</literal>. Il valore di questa "
-"variabile verrà ricercato all'interno del contesto Seam e passato al metodo "
-"<literal>hasPermission()</literal> di <literal>Identity</literal>, il quale "
-"in questo caso può determinare se l'utente ha il permesso richiesto per "
-"modificare l'oggetto <literal>Account</literal> specificato."
+msgid "The interesting thing to note from this example is the reference to <literal>selectedAccount</literal> seen within the <literal>hasPermission()</literal> function call. The value of this variable will be looked up from within the Seam context, and passed to the <literal>hasPermission()</literal> method in <literal>Identity</literal>, which in this case can then determine if the user has the required permission for modifying the specified <literal>Account</literal> object."
+msgstr "La cosa interessante da notare in questo esempio è il riferimento a <literal>selectedAccount</literal> che si vede all'interno della chiamata alla funzione <literal>hasPermission</literal>. Il valore di questa variabile verrà ricercato all'interno del contesto Seam e passato al metodo <literal>hasPermission()</literal> di <literal>Identity</literal>, il quale in questo caso può determinare se l'utente ha il permesso richiesto per modificare l'oggetto <literal>Account</literal> specificato."
#. Tag: title
#: Security.xml:2361
@@ -4081,85 +2924,57 @@
#. Tag: para
#: Security.xml:2362
#, no-c-format
-msgid ""
-"Sometimes it might be desirable to perform a security check in code, without "
-"using the <literal>@Restrict</literal> annotation. In this situation, simply "
-"use <literal>Identity.checkRestriction()</literal> to evaluate a security "
-"expression, like this:"
-msgstr ""
-"A volte può risultare desiderabile eseguire un controllo di sicurezza nel "
-"codice, senza usare l'annotazione <literal>@Restrict</literal>. In questa "
-"situazione basta usare semplicemente <literal>Identity.checkRestriction()</"
-"literal> per risolvere l'espressione di sicurezza, così:"
+msgid "Sometimes it might be desirable to perform a security check in code, without using the <literal>@Restrict</literal> annotation. In this situation, simply use <literal>Identity.checkRestriction()</literal> to evaluate a security expression, like this:"
+msgstr "A volte può risultare desiderabile eseguire un controllo di sicurezza nel codice, senza usare l'annotazione <literal>@Restrict</literal>. In questa situazione basta usare semplicemente <literal>Identity.checkRestriction()</literal> per risolvere l'espressione di sicurezza, così:"
#. Tag: programlisting
#: Security.xml:2368
#, no-c-format
msgid ""
"<![CDATA[public void deleteCustomer() {\n"
-" Identity.instance().checkRestriction(\"#{s:hasPermission"
-"(selectedCustomer,'delete')}\");\n"
+" Identity.instance().checkRestriction(\"#{s:hasPermission(selectedCustomer,'delete')}\");\n"
"}]]>"
msgstr ""
"<![CDATA[public void deleteCustomer() {\n"
-" Identity.instance().checkRestriction(\"#{s:hasPermission"
-"(selectedCustomer,'delete')}\");\n"
+" Identity.instance().checkRestriction(\"#{s:hasPermission(selectedCustomer,'delete')}\");\n"
"}]]>"
#. Tag: para
#: Security.xml:2370
#, no-c-format
-msgid ""
-"If the expression specified doesn't evaluate to <literal>true</literal>, "
-"either"
-msgstr ""
-"Se l'espressione specificata non risolve a <literal>true</literal>, allora"
+msgid "If the expression specified doesn't evaluate to <literal>true</literal>, either"
+msgstr "Se l'espressione specificata non risolve a <literal>true</literal>, allora"
#. Tag: para
#: Security.xml:2376
#, no-c-format
-msgid ""
-"if the user is not logged in, a <literal>NotLoggedInException</literal> "
-"exception is thrown or"
-msgstr ""
-"se l'utente non ha eseguito l'accesso, l'eccezione "
-"<literal>NotLoggedInException</literal> viene lanciata, oppure"
+msgid "if the user is not logged in, a <literal>NotLoggedInException</literal> exception is thrown or"
+msgstr "se l'utente non ha eseguito l'accesso, l'eccezione <literal>NotLoggedInException</literal> viene lanciata, oppure"
#. Tag: para
#: Security.xml:2382
#, no-c-format
-msgid ""
-"if the user is logged in, an <literal>AuthorizationException</literal> "
-"exception is thrown."
-msgstr ""
-"se l'utente ha eseguito l'accesso, viene lanciata un'eccezione "
-"<literal>AuthorizationException</literal>."
+msgid "if the user is logged in, an <literal>AuthorizationException</literal> exception is thrown."
+msgstr "se l'utente ha eseguito l'accesso, viene lanciata un'eccezione <literal>AuthorizationException</literal>."
#. Tag: para
#: Security.xml:2389
#, no-c-format
-msgid ""
-"It is also possible to call the <literal>hasRole()</literal> and "
-"<literal>hasPermission()</literal> methods directly from Java code:"
-msgstr ""
-"E' anche possibile chiamare i metodi <literal>hasRole()</literal> e "
-"<literal>hasPermission()</literal> direttamente dal codice Java:"
+msgid "It is also possible to call the <literal>hasRole()</literal> and <literal>hasPermission()</literal> methods directly from Java code:"
+msgstr "E' anche possibile chiamare i metodi <literal>hasRole()</literal> e <literal>hasPermission()</literal> direttamente dal codice Java:"
#. Tag: programlisting
#: Security.xml:2394
#, no-c-format
msgid ""
"<![CDATA[if (!Identity.instance().hasRole(\"admin\"))\n"
-" throw new AuthorizationException(\"Must be admin to perform this action"
-"\");\n"
+" throw new AuthorizationException(\"Must be admin to perform this action\");\n"
"\n"
"if (!Identity.instance().hasPermission(\"customer\", \"create\"))\n"
-" throw new AuthorizationException(\"You may not create new customers"
-"\");]]>"
+" throw new AuthorizationException(\"You may not create new customers\");]]>"
msgstr ""
"<![CDATA[if (!Identity.instance().hasRole(\"amministratore\"))\n"
-" throw new AuthorizationException(\"Devi essere un amministratore per "
-"eseguire questa azione\");\n"
+" throw new AuthorizationException(\"Devi essere un amministratore per eseguire questa azione\");\n"
"\n"
"if (!Identity.instance().hasPermission(\"cliente\", \"crea\"))\n"
" throw new AuthorizationException(\"Non puoi creare nuovi clienti\");]]>"
@@ -4173,108 +2988,50 @@
#. Tag: para
#: Security.xml:2402
#, no-c-format
-msgid ""
-"One indication of a well designed user interface is that the user is not "
-"presented with options for which they don't have the necessary privileges to "
-"use. Seam Security allows conditional rendering of either 1) sections of a "
-"page or 2) individual controls, based upon the privileges of the user, using "
-"the very same EL expressions that are used for component security."
-msgstr ""
-"Una degli indici di un'interfaccia utente ben progettata è quando agli "
-"utenti non vengono presentate opzioni per le quali non hanno i permessi "
-"necessari per usarle. La sicurezza di Seam consente la visualizzazione "
-"condizionale sia di sezioni di una pagina che di singoli controlli, basata "
-"sui privilegi dell'utente, usando esattamente le stesse espressioni EL che "
-"sono usate nella sicurezza dei componenti."
+msgid "One indication of a well designed user interface is that the user is not presented with options for which they don't have the necessary privileges to use. Seam Security allows conditional rendering of either 1) sections of a page or 2) individual controls, based upon the privileges of the user, using the very same EL expressions that are used for component security."
+msgstr "Una degli indici di un'interfaccia utente ben progettata è quando agli utenti non vengono presentate opzioni per le quali non hanno i permessi necessari per usarle. La sicurezza di Seam consente la visualizzazione condizionale sia di sezioni di una pagina che di singoli controlli, basata sui privilegi dell'utente, usando esattamente le stesse espressioni EL che sono usate nella sicurezza dei componenti."
#. Tag: para
#: Security.xml:2409
#, no-c-format
-msgid ""
-"Let's take a look at some examples of interface security. First of all, "
-"let's pretend that we have a login form that should only be rendered if the "
-"user is not already logged in. Using the <literal>identity.isLoggedIn()</"
-"literal> property, we can write this:"
-msgstr ""
-"Diamo un'occhiata ad alcuni esempi della sicurezza nell'interfaccia. Prima "
-"di tutto prentendiamo di avere una form di accesso che debba essere "
-"visualizzata solo se l'utente non ha già fatto l'accesso. Usando la "
-"proprietà <literal>identity.isLoggedIn()</literal> possiamo scrivere questo:"
+msgid "Let's take a look at some examples of interface security. First of all, let's pretend that we have a login form that should only be rendered if the user is not already logged in. Using the <literal>identity.isLoggedIn()</literal> property, we can write this:"
+msgstr "Diamo un'occhiata ad alcuni esempi della sicurezza nell'interfaccia. Prima di tutto prentendiamo di avere una form di accesso che debba essere visualizzata solo se l'utente non ha già fatto l'accesso. Usando la proprietà <literal>identity.isLoggedIn()</literal> possiamo scrivere questo:"
#. Tag: programlisting
#: Security.xml:2415
#, no-c-format
-msgid ""
-"<![CDATA[<h:form class=\"loginForm\" rendered=\"#{not identity.loggedIn}\">]]"
-">"
-msgstr ""
-"<![CDATA[<h:form class=\"loginForm\" rendered=\"#{not identity.loggedIn}\">]]"
-">"
+msgid "<![CDATA[<h:form class=\"loginForm\" rendered=\"#{not identity.loggedIn}\">]]>"
+msgstr "<![CDATA[<h:form class=\"loginForm\" rendered=\"#{not identity.loggedIn}\">]]>"
#. Tag: para
#: Security.xml:2417
#, no-c-format
-msgid ""
-"If the user isn't logged in, then the login form will be rendered - very "
-"straight forward so far. Now let's pretend there is a menu on the page that "
-"contains some actions which should only be accessible to users in the "
-"<literal>manager</literal> role. Here's one way that these could be written:"
-msgstr ""
-"Se l'utente non ha eseguito l'accesso, allora la form di accesso verrà "
-"visualizzata. Fin qui tutto bene. Ora vogliamo che ci sia un menu sulla "
-"pagina che contenga alcune azioni speciali che devono essere accessibili "
-"solo agli utenti del ruolo <literal>dirigente</literal>. Ecco un modo in cui "
-"ciò potrebbe essere scritto:"
+msgid "If the user isn't logged in, then the login form will be rendered - very straight forward so far. Now let's pretend there is a menu on the page that contains some actions which should only be accessible to users in the <literal>manager</literal> role. Here's one way that these could be written:"
+msgstr "Se l'utente non ha eseguito l'accesso, allora la form di accesso verrà visualizzata. Fin qui tutto bene. Ora vogliamo che ci sia un menu sulla pagina che contenga alcune azioni speciali che devono essere accessibili solo agli utenti del ruolo <literal>dirigente</literal>. Ecco un modo in cui ciò potrebbe essere scritto:"
#. Tag: programlisting
#: Security.xml:2423
#, no-c-format
msgid ""
-"<![CDATA[<h:outputLink action=\"#{reports.listManagerReports}\" rendered=\"#"
-"{s:hasRole('manager')}\">\n"
+"<![CDATA[<h:outputLink action=\"#{reports.listManagerReports}\" rendered=\"#{s:hasRole('manager')}\">\n"
" Manager Reports\n"
"</h:outputLink>]]>"
msgstr ""
-"<![CDATA[<h:outputLink action=\"#{reports.listManagerReports}\" rendered=\"#"
-"{s:hasRole('dirigente')}\">\n"
+"<![CDATA[<h:outputLink action=\"#{reports.listManagerReports}\" rendered=\"#{s:hasRole('dirigente')}\">\n"
" Rapporti per i dirigenti\n"
"</h:outputLink>]]>"
#. Tag: para
#: Security.xml:2425
#, no-c-format
-msgid ""
-"This is also quite straight forward. If the user is not a member of the "
-"<literal>manager</literal> role, then the outputLink will not be rendered. "
-"The <literal>rendered</literal> attribute can generally be used on the "
-"control itself, or on a surrounding <literal><s:div></literal> or "
-"<literal><s:span></literal> control."
-msgstr ""
-"Anche fin qui tutto bene. Se l'utente non è un membro del ruolo "
-"<literal>dirigente</literal>, allora <literal>outputLink</literal> non verrà "
-"visualizzato. L'attributo <literal>rendered</literal> in generale può essere "
-"usato per il controllo stesso oppure in un controllo <literal><s:div></"
-"literal> o <literal><s:span></literal> che ne comprende altri."
+msgid "This is also quite straight forward. If the user is not a member of the <literal>manager</literal> role, then the outputLink will not be rendered. The <literal>rendered</literal> attribute can generally be used on the control itself, or on a surrounding <literal><s:div></literal> or <literal><s:span></literal> control."
+msgstr "Anche fin qui tutto bene. Se l'utente non è un membro del ruolo <literal>dirigente</literal>, allora <literal>outputLink</literal> non verrà visualizzato. L'attributo <literal>rendered</literal> in generale può essere usato per il controllo stesso oppure in un controllo <literal><s:div></literal> o <literal><s:span></literal> che ne comprende altri."
#. Tag: para
#: Security.xml:2432
#, no-c-format
-msgid ""
-"Now for something more complex. Let's say you have a <literal>h:dataTable</"
-"literal> control on a page listing records for which you may or may not wish "
-"to render action links depending on the user's privileges. The <literal>s:"
-"hasPermission</literal> EL function allows us to pass in an object parameter "
-"which can be used to determine whether the user has the requested permission "
-"for that object or not. Here's how a dataTable with secured links might look:"
-msgstr ""
-"Ora andiamo su qualcosa di più complesso. Supponiamo di avere in una pagina "
-"un controllo <literal>h:dataTable</literal> che elenca delle righe per le "
-"quali si può volere visualizzare o meno i link alle azioni in funzione dei "
-"permessi dell'utente. La funzione EL <literal>s:hasPermission</literal> ci "
-"consente di passare un parametro oggetto che può essere usato per "
-"determinare se l'utente ha o meno il permesso richiesto per quell'oggetto. "
-"Ecco come può apparire una <literal>dataTable</literal> con dei link "
-"controllati dalla sicurezza:"
+msgid "Now for something more complex. Let's say you have a <literal>h:dataTable</literal> control on a page listing records for which you may or may not wish to render action links depending on the user's privileges. The <literal>s:hasPermission</literal> EL function allows us to pass in an object parameter which can be used to determine whether the user has the requested permission for that object or not. Here's how a dataTable with secured links might look:"
+msgstr "Ora andiamo su qualcosa di più complesso. Supponiamo di avere in una pagina un controllo <literal>h:dataTable</literal> che elenca delle righe per le quali si può volere visualizzare o meno i link alle azioni in funzione dei permessi dell'utente. La funzione EL <literal>s:hasPermission</literal> ci consente di passare un parametro oggetto che può essere usato per determinare se l'utente ha o meno il permesso richiesto per quell'oggetto. Ecco come può apparire una <literal>dataTable</literal> con dei link controllati dalla sicurezza:"
#. Tag: programlisting
#: Security.xml:2440
@@ -4309,11 +3066,9 @@
" </h:column>\n"
" <h:column>\n"
" <f:facet name=\"header\">Azione</f:facet>\n"
-" <s:link value=\"Modifica cliente\" action=\"#{clientAction.modify}"
-"\"\n"
+" <s:link value=\"Modifica cliente\" action=\"#{clientAction.modify}\"\n"
" rendered=\"#{s:hasPermission(cl,'modifica')\"/>\n"
-" <s:link value=\"Cancella cliente\" action=\"#{clientAction.delete}"
-"\"\n"
+" <s:link value=\"Cancella cliente\" action=\"#{clientAction.delete}\"\n"
" rendered=\"#{s:hasPermission(cl,'cancella')\"/>\n"
" </h:column>\n"
"</h:dataTable>]]>"
@@ -4327,30 +3082,8 @@
#. Tag: para
#: Security.xml:2446
#, no-c-format
-msgid ""
-"Page security requires that the application is using a <literal>pages.xml</"
-"literal> file, however is extremely simple to configure. Simply include a "
-"<literal><restrict/></literal> element within the <literal>page</"
-"literal> elements that you wish to secure. If no explicit restriction is "
-"specified by the <literal>restrict</literal> element, an implied permission "
-"of <literal>/viewId.xhtml:render</literal> will be checked when the page is "
-"accessed via a non-faces (GET) request, and a permission of <literal>/viewId."
-"xhtml:restore</literal> will be required when any JSF postback (form "
-"submission) originates from the page. Otherwise, the specified restriction "
-"will be evaluated as a standard security expression. Here's a couple of "
-"examples:"
-msgstr ""
-"La sicurezza delle pagine richiede che l'applicazione usi un file "
-"<literal>pages.xml</literal>. Comunque è molto semplice da configurare. "
-"Basta includere un elemento <literal>>restrict<</literal> all'interno "
-"degli elementi <literal>page</literal> che si vogliono rendere sicuri. Se "
-"tramite l'elemento <literal>restrict</literal> non viene indicata "
-"esplicitamente una restrizione, verrà controllato implicitamente il permesso "
-"<literal>/viewId.xhtml:render</literal> quando la richiesta della pagina "
-"avviene in modo non-faces (GET), e il permesso<literal>/viewId.xhtml:"
-"restore</literal> quando un JSF postback (il submit della form) viene "
-"originato dalla pagina. Altrimenti viene la restrizione specificata verrà "
-"valutata come una normale espressione di sicurezza. Ecco un paio di esempi:"
+msgid "Page security requires that the application is using a <literal>pages.xml</literal> file, however is extremely simple to configure. Simply include a <literal><restrict/></literal> element within the <literal>page</literal> elements that you wish to secure. If no explicit restriction is specified by the <literal>restrict</literal> element, an implied permission of <literal>/viewId.xhtml:render</literal> will be checked when the page is accessed via a non-faces (GET) request, and a permission of <literal>/viewId.xhtml:restore</literal> will be required when any JSF postback (form submission) originates from the page. Otherwise, the specified restriction will be evaluated as a standard security expression. Here's a couple of examples:"
+msgstr "La sicurezza delle pagine richiede che l'applicazione usi un file <literal>pages.xml</literal>. Comunque è molto semplice da configurare. Basta includere un elemento <literal>>restrict<</literal> all'interno degli elementi <literal>page</literal> che si vogliono rendere sicuri. Se tramite l'elemento <literal>restrict</literal> non viene indicata esplicitamente una restrizione, verrà controllato implicitamente il permesso <literal>/viewId.xhtml:render</literal> quando la richiesta della pagina avviene in modo non-faces (GET), e il permesso<literal>/viewId.xhtml:restore</literal> quando un JSF postback (il submit della form) viene originato dalla pagina. Altrimenti viene la restrizione specificata verrà valutata come una normale espressione di sicurezza. Ecco un paio di esempi:"
#. Tag: programlisting
#: Security.xml:2457
@@ -4367,14 +3100,8 @@
#. Tag: para
#: Security.xml:2459
#, no-c-format
-msgid ""
-"This page has an implied permission of <literal>/settings.xhtml:render</"
-"literal> required for non-faces requests and an implied permission of "
-"<literal>/settings.xhtml:restore</literal> for faces requests."
-msgstr ""
-"Questa pagina richiede implicitamente un permesso <literal>/settings.xhtml:"
-"render</literal> per le richieste non-faces e un permesso <literal>/settings."
-"xhtml:restore</literal> per le richieste faces."
+msgid "This page has an implied permission of <literal>/settings.xhtml:render</literal> required for non-faces requests and an implied permission of <literal>/settings.xhtml:restore</literal> for faces requests."
+msgstr "Questa pagina richiede implicitamente un permesso <literal>/settings.xhtml:render</literal> per le richieste non-faces e un permesso <literal>/settings.xhtml:restore</literal> per le richieste faces."
#. Tag: programlisting
#: Security.xml:2464
@@ -4391,12 +3118,8 @@
#. Tag: para
#: Security.xml:2466
#, no-c-format
-msgid ""
-"Both faces and non-faces requests to this page require that the user is a "
-"member of the <literal>admin</literal> role."
-msgstr ""
-"Sia le richieste faces che quelle non-faces a questa pagina richiedono che "
-"l'utente sia membro del ruolo <literal>amministratore</literal>."
+msgid "Both faces and non-faces requests to this page require that the user is a member of the <literal>admin</literal> role."
+msgstr "Sia le richieste faces che quelle non-faces a questa pagina richiedono che l'utente sia membro del ruolo <literal>amministratore</literal>."
#. Tag: title
#: Security.xml:2474
@@ -4407,22 +3130,14 @@
#. Tag: para
#: Security.xml:2476
#, no-c-format
-msgid ""
-"Seam security also makes it possible to apply security restrictions to read, "
-"insert, update and delete actions for entities."
-msgstr ""
-"La sicurezza di Seam consente anche di applicare le restrizioni di sicurezza "
-"alle azioni per leggere, inserire, aggiornare e cancellare le entità."
+msgid "Seam security also makes it possible to apply security restrictions to read, insert, update and delete actions for entities."
+msgstr "La sicurezza di Seam consente anche di applicare le restrizioni di sicurezza alle azioni per leggere, inserire, aggiornare e cancellare le entità."
#. Tag: para
#: Security.xml:2481
#, no-c-format
-msgid ""
-"To secure all actions for an entity class, add a <literal>@Restrict</"
-"literal> annotation on the class itself:"
-msgstr ""
-"Per rendere sicure tutte le azioni per una classe entità, aggiungere "
-"un'annotazione <literal>@Restrict</literal> alla classe stessa:"
+msgid "To secure all actions for an entity class, add a <literal>@Restrict</literal> annotation on the class itself:"
+msgstr "Per rendere sicure tutte le azioni per una classe entità, aggiungere un'annotazione <literal>@Restrict</literal> alla classe stessa:"
#. Tag: programlisting
#: Security.xml:2486
@@ -4445,91 +3160,44 @@
#. Tag: para
#: Security.xml:2488
#, no-c-format
-msgid ""
-"If no expression is specified in the <literal>@Restrict</literal> "
-"annotation, the default security check that is performed is a permission "
-"check of <literal>entity:action</literal>, where the permission target is "
-"the entity instance, and the <literal>action</literal> is either "
-"<literal>read</literal>, <literal>insert</literal>, <literal>update</"
-"literal> or <literal>delete</literal>."
-msgstr ""
-"Se nell'annotazione <literal>@Restrict</literal> non è indicata alcuna "
-"espressione, il controllo di sicurezza di default che viene eseguito è una "
-"verifica del permesso <literal>entità:azione</literal>, dove l'obiettivo del "
-"permesso è l'istanza dell'entità e <literal>azione</literal> è "
-"<literal>read</literal>, <literal>insert</literal>, <literal>update</"
-"literal> o <literal>delete</literal>."
+msgid "If no expression is specified in the <literal>@Restrict</literal> annotation, the default security check that is performed is a permission check of <literal>entity:action</literal>, where the permission target is the entity instance, and the <literal>action</literal> is either <literal>read</literal>, <literal>insert</literal>, <literal>update</literal> or <literal>delete</literal>."
+msgstr "Se nell'annotazione <literal>@Restrict</literal> non è indicata alcuna espressione, il controllo di sicurezza di default che viene eseguito è una verifica del permesso <literal>entità:azione</literal>, dove l'obiettivo del permesso è l'istanza dell'entità e <literal>azione</literal> è <literal>read</literal>, <literal>insert</literal>, <literal>update</literal> o <literal>delete</literal>."
#. Tag: para
#: Security.xml:2495
#, no-c-format
-msgid ""
-"It is also possible to only restrict certain actions, by placing a "
-"<literal>@Restrict</literal> annotation on the relevent entity lifecycle "
-"method (annotated as follows):"
-msgstr ""
-"E' anche possibile applicare una restrizione solo a determinate azioni, "
-"posizionando l'annotazione <literal>@Restrict</literal> nel corrispondente "
-"metodo relativo al ciclo di vita dell'entità (annotato come segue):"
+msgid "It is also possible to only restrict certain actions, by placing a <literal>@Restrict</literal> annotation on the relevent entity lifecycle method (annotated as follows):"
+msgstr "E' anche possibile applicare una restrizione solo a determinate azioni, posizionando l'annotazione <literal>@Restrict</literal> nel corrispondente metodo relativo al ciclo di vita dell'entità (annotato come segue):"
#. Tag: para
#: Security.xml:2502
#, no-c-format
-msgid ""
-"<literal>@PostLoad</literal> - Called after an entity instance is loaded "
-"from the database. Use this method to configure a <literal>read</literal> "
-"permission."
-msgstr ""
-"<literal>@PostLoad</literal> - Chiamato dopo che l'istana di una entità "
-"viene caricata dal database. Usare questo metodo per configurare un permesso "
-"<literal>read</literal>."
+msgid "<literal>@PostLoad</literal> - Called after an entity instance is loaded from the database. Use this method to configure a <literal>read</literal> permission."
+msgstr "<literal>@PostLoad</literal> - Chiamato dopo che l'istana di una entità viene caricata dal database. Usare questo metodo per configurare un permesso <literal>read</literal>."
#. Tag: para
#: Security.xml:2508
#, no-c-format
-msgid ""
-"<literal>@PrePersist</literal> - Called before a new instance of the entity "
-"is inserted. Use this method to configure an <literal>insert</literal> "
-"permission."
-msgstr ""
-"<literal>@PrePersist</literal> - Chiamato prima che una nuova istanza "
-"dell'entità sia inserita. Usare questo metodo per configurare un permesso "
-"<literal>insert</literal>."
+msgid "<literal>@PrePersist</literal> - Called before a new instance of the entity is inserted. Use this method to configure an <literal>insert</literal> permission."
+msgstr "<literal>@PrePersist</literal> - Chiamato prima che una nuova istanza dell'entità sia inserita. Usare questo metodo per configurare un permesso <literal>insert</literal>."
#. Tag: para
#: Security.xml:2514
#, no-c-format
-msgid ""
-"<literal>@PreUpdate</literal> - Called before an entity is updated. Use this "
-"method to configure an <literal>update</literal> permission."
-msgstr ""
-"<literal>@PreUpdate</literal> - Chiamato prima che un'entità sia aggiornata. "
-"Usare questo metodo per configurare un permesso <literal>update</literal>."
+msgid "<literal>@PreUpdate</literal> - Called before an entity is updated. Use this method to configure an <literal>update</literal> permission."
+msgstr "<literal>@PreUpdate</literal> - Chiamato prima che un'entità sia aggiornata. Usare questo metodo per configurare un permesso <literal>update</literal>."
#. Tag: para
#: Security.xml:2520
#, no-c-format
-msgid ""
-"<literal>@PreRemove</literal> - Called before an entity is deleted. Use this "
-"method to configure a <literal>delete</literal> permission."
-msgstr ""
-"<literal>@PreRemove</literal> - Chiamato prima che un'entità venga "
-"cancellata. Usare questo metodo per configuare un permesso <literal>delete</"
-"literal>."
+msgid "<literal>@PreRemove</literal> - Called before an entity is deleted. Use this method to configure a <literal>delete</literal> permission."
+msgstr "<literal>@PreRemove</literal> - Chiamato prima che un'entità venga cancellata. Usare questo metodo per configuare un permesso <literal>delete</literal>."
#. Tag: para
#: Security.xml:2527
#, no-c-format
-msgid ""
-"Here's an example of how an entity would be configured to perform a security "
-"check for any <literal>insert</literal> operations. Please note that the "
-"method is not required to do anything, the only important thing in regard to "
-"security is how it is annotated:"
-msgstr ""
-"Ecco un esempio di come un'entità potrebbe essere configurata per eseguire "
-"un controllo di sicurezza per tutte le operazioni <literal>insert</literal>. "
-"Notare che non è richiesto che il metodo faccia qualcosa, la sola cosa "
-"importante per quanto riguarda la sicurezza è come è annotato:"
+msgid "Here's an example of how an entity would be configured to perform a security check for any <literal>insert</literal> operations. Please note that the method is not required to do anything, the only important thing in regard to security is how it is annotated:"
+msgstr "Ecco un esempio di come un'entità potrebbe essere configurata per eseguire un controllo di sicurezza per tutte le operazioni <literal>insert</literal>. Notare che non è richiesto che il metodo faccia qualcosa, la sola cosa importante per quanto riguarda la sicurezza è come è annotato:"
#. Tag: programlisting
#: Security.xml:2533
@@ -4554,12 +3222,8 @@
#. Tag: para
#: Security.xml:2539
#, no-c-format
-msgid ""
-"You can also specify the call back method in <literal>/META-INF/orm.xml</"
-"literal>:"
-msgstr ""
-"E' anche possibile specificare i metodi callback in <literal>/META-INF/orm."
-"xml</literal>:"
+msgid "You can also specify the call back method in <literal>/META-INF/orm.xml</literal>:"
+msgstr "E' anche possibile specificare i metodi callback in <literal>/META-INF/orm.xml</literal>:"
#. Tag: programlisting
#: Security.xml:2543
@@ -4568,8 +3232,7 @@
"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<entity-mappings xmlns=\"http://java.sun.com/xml/ns/persistence/orm\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/"
-"orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
" version=\"1.0\">\n"
"\n"
" <entity class=\"Customer\">\n"
@@ -4581,8 +3244,7 @@
"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<entity-mappings xmlns=\"http://java.sun.com/xml/ns/persistence/orm\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/"
-"orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
" version=\"1.0\">\n"
"\n"
" <entity class=\"Customer\">\n"
@@ -4594,29 +3256,14 @@
#. Tag: para
#: Security.xml:2545
#, no-c-format
-msgid ""
-"Of course, you still need to annotate the <literal>prePersist()</literal> "
-"method on <literal>Customer</literal> with <literal>@Restrict</literal>"
-msgstr ""
-"Ovviamente c'è sempre bisogno di annotare il metodo <literal>prePersist()</"
-"literal> in <literal>Customer</literal> con <literal>@Restrict</literal>."
+msgid "Of course, you still need to annotate the <literal>prePersist()</literal> method on <literal>Customer</literal> with <literal>@Restrict</literal>"
+msgstr "Ovviamente c'è sempre bisogno di annotare il metodo <literal>prePersist()</literal> in <literal>Customer</literal> con <literal>@Restrict</literal>."
#. Tag: para
#: Security.xml:2551
#, no-c-format
-msgid ""
-"And here's an example of an entity permission rule that checks if the "
-"authenticated user is allowed to insert a new <literal>MemberBlog</literal> "
-"record (from the seamspace example). The entity for which the security check "
-"is being made is automatically inserted into the working memory (in this "
-"case <literal>MemberBlog</literal>):"
-msgstr ""
-"Ed ecco un esempio di una regola sui permessi di entità che controlla se "
-"all'utente autenticato è consentito di inserire un record "
-"<literal>MemberBlog</literal> (dall'applicazione di esempio seamspace). "
-"L'entità per la quale viene fatto il controllo di sicurezza è inserita "
-"automaticamente nella working memory (in questo caso <literal>MemberBlog</"
-"literal>):"
+msgid "And here's an example of an entity permission rule that checks if the authenticated user is allowed to insert a new <literal>MemberBlog</literal> record (from the seamspace example). The entity for which the security check is being made is automatically inserted into the working memory (in this case <literal>MemberBlog</literal>):"
+msgstr "Ed ecco un esempio di una regola sui permessi di entità che controlla se all'utente autenticato è consentito di inserire un record <literal>MemberBlog</literal> (dall'applicazione di esempio seamspace). L'entità per la quale viene fatto il controllo di sicurezza è inserita automaticamente nella working memory (in questo caso <literal>MemberBlog</literal>):"
#. Tag: programlisting
#: Security.xml:2557
@@ -4627,10 +3274,8 @@
" activation-group \"permissions\"\n"
"when\n"
" principal: Principal()\n"
-" memberBlog: MemberBlog(member : member -> (member.getUsername().equals"
-"(principal.getName())))\n"
-" check: PermissionCheck(target == memberBlog, action == \"insert\", granted "
-"== false)\n"
+" memberBlog: MemberBlog(member : member -> (member.getUsername().equals(principal.getName())))\n"
+" check: PermissionCheck(target == memberBlog, action == \"insert\", granted == false)\n"
"then\n"
" check.grant();\n"
"end;]]>"
@@ -4640,10 +3285,8 @@
" activation-group \"permissions\"\n"
"when\n"
" principal: Principal()\n"
-" memberBlog: MemberBlog(member : member -> (member.getUsername().equals"
-"(principal.getName())))\n"
-" check: PermissionCheck(target == memberBlog, action == \"insert\", granted "
-"== false)\n"
+" memberBlog: MemberBlog(member : member -> (member.getUsername().equals(principal.getName())))\n"
+" check: PermissionCheck(target == memberBlog, action == \"insert\", granted == false)\n"
"then\n"
" check.grant();\n"
"end;]]>"
@@ -4651,41 +3294,14 @@
#. Tag: para
#: Security.xml:2559
#, no-c-format
-msgid ""
-"This rule will grant the permission <literal>memberBlog:insert</literal> if "
-"the currently authenticated user (indicated by the <literal>Principal</"
-"literal> fact) has the same name as the member for which the blog entry is "
-"being created. The \"<literal>principal: Principal()</literal>\" structure "
-"that can be seen in the example code is a variable binding - it binds the "
-"instance of the <literal>Principal</literal> object from the working memory "
-"(placed there during authentication) and assigns it to a variable called "
-"<literal>principal</literal>. Variable bindings allow the value to be "
-"referred to in other places, such as the following line which compares the "
-"member's username to the <literal>Principal</literal> name. For more "
-"details, please refer to the JBoss Rules documentation."
-msgstr ""
-"Questa regola concederà il permesso <literal>memberBlog:insert</literal> se "
-"l'utente attualmente autenticato (indicato dal fatto <literal>Principal</"
-"literal>) ha lo stesso nome del membro per il quale è stata creata la voce "
-"del blog. La riga \"<literal>principal: Principal()</literal>\" può essere "
-"vista nel codice di esempio come un collegamento con una variabile. Essa "
-"collega l'istanza dell'oggetto <literal>Principal</literal> nella working "
-"memory (posizionato durante l'autenticazione) e lo assegna ad una variabile "
-"chiamata <literal>principal</literal>. I collegamenti con le variabili "
-"consentono di fare riferimento al valore in altri posti, come nella riga "
-"successiva che confronta il nome dell'utente con il nome del "
-"<literal>Principal</literal>. Per maggiori dettagli fare riferimento alla "
-"documentazione di JBoss Rules."
+msgid "This rule will grant the permission <literal>memberBlog:insert</literal> if the currently authenticated user (indicated by the <literal>Principal</literal> fact) has the same name as the member for which the blog entry is being created. The \"<literal>principal: Principal()</literal>\" structure that can be seen in the example code is a variable binding - it binds the instance of the <literal>Principal</literal> object from the working memory (placed there during authentication) and assigns it to a variable called <literal>principal</literal>. Variable bindings allow the value to be referred to in other places, such as the following line which compares the member's username to the <literal>Principal</literal> name. For more details, please refer to the JBoss Rules documentation."
+msgstr "Questa regola concederà il permesso <literal>memberBlog:insert</literal> se l'utente attualmente autenticato (indicato dal fatto <literal>Principal</literal>) ha lo stesso nome del membro per il quale è stata creata la voce del blog. La riga \"<literal>principal: Principal()</literal>\" può essere vista nel codice di esempio come un collegamento con una variabile. Essa collega l'istanza dell'oggetto <literal>Principal</literal> nella working memory (posizionato durante l'autenticazione) e lo assegna ad una variabile chiamata <literal>principal</literal>. I collegamenti con le variabili consentono di fare riferimento al valore in altri posti, come nella riga successiva che confronta il nome dell'utente con il nome del <literal>Principal</literal>. Per maggiori dettagli fare riferimento alla documentazione di JBoss Rules."
#. Tag: para
#: Security.xml:2569
#, no-c-format
-msgid ""
-"Finally, we need to install a listener class that integrates Seam security "
-"with your JPA provider."
-msgstr ""
-"Infine abbiamo bisogno di installare una classe listener che integra la "
-"sicurezza Seam con la libreria JPA."
+msgid "Finally, we need to install a listener class that integrates Seam security with your JPA provider."
+msgstr "Infine abbiamo bisogno di installare una classe listener che integra la sicurezza Seam con la libreria JPA."
#. Tag: title
#: Security.xml:2575
@@ -4696,14 +3312,8 @@
#. Tag: para
#: Security.xml:2577
#, no-c-format
-msgid ""
-"Security checks for EJB3 entity beans are performed with an "
-"<literal>EntityListener</literal>. You can install this listener by using "
-"the following <literal>META-INF/orm.xml</literal> file:"
-msgstr ""
-"I controlli di sicurezza sugli entity bean EJB3 sono eseguiti con un "
-"<literal>EntityListener</literal>. E' possibile installare questo listener "
-"usando il seguente file <literal>META-INF/orm.xml</literal>:"
+msgid "Security checks for EJB3 entity beans are performed with an <literal>EntityListener</literal>. You can install this listener by using the following <literal>META-INF/orm.xml</literal> file:"
+msgstr "I controlli di sicurezza sugli entity bean EJB3 sono eseguiti con un <literal>EntityListener</literal>. E' possibile installare questo listener usando il seguente file <literal>META-INF/orm.xml</literal>:"
#. Tag: programlisting
#: Security.xml:2582
@@ -4712,15 +3322,13 @@
"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<entity-mappings xmlns=\"http://java.sun.com/xml/ns/persistence/orm\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/"
-"orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
" version=\"1.0\">\n"
"\n"
" <persistence-unit-metadata>\n"
" <persistence-unit-defaults>\n"
" <entity-listeners>\n"
-" <entity-listener class=\"org.jboss.seam.security."
-"EntitySecurityListener\"/>\n"
+" <entity-listener class=\"org.jboss.seam.security.EntitySecurityListener\"/>\n"
" </entity-listeners>\n"
" </persistence-unit-defaults>\n"
" </persistence-unit-metadata>\n"
@@ -4730,15 +3338,13 @@
"<![CDATA[<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"
"<entity-mappings xmlns=\"http://java.sun.com/xml/ns/persistence/orm\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/"
-"orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
+" xsi:schemaLocation=\"http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd\"\n"
" version=\"1.0\">\n"
"\n"
" <persistence-unit-metadata>\n"
" <persistence-unit-defaults>\n"
" <entity-listeners>\n"
-" <entity-listener class=\"org.jboss.seam.security."
-"EntitySecurityListener\"/>\n"
+" <entity-listener class=\"org.jboss.seam.security.EntitySecurityListener\"/>\n"
" </entity-listeners>\n"
" </persistence-unit-defaults>\n"
" </persistence-unit-metadata>\n"
@@ -4754,15 +3360,8 @@
#. Tag: para
#: Security.xml:2589
#, no-c-format
-msgid ""
-"If you are using a Hibernate <literal>SessionFactory</literal> configured "
-"via Seam, and are using annotations, or <literal>orm.xml</literal>, then you "
-"don't need to do anything special to use entity security."
-msgstr ""
-"Se si sta usando un <literal>SessionFactory</literal> di Hibernate "
-"configurato tramite Seam e si stanno usando le annotazioni oppure "
-"<literal>orm.xml</literal>, allora non c'è bisogno di fare niente di "
-"particolare per usare la sicurezza sulle entità."
+msgid "If you are using a Hibernate <literal>SessionFactory</literal> configured via Seam, and are using annotations, or <literal>orm.xml</literal>, then you don't need to do anything special to use entity security."
+msgstr "Se si sta usando un <literal>SessionFactory</literal> di Hibernate configurato tramite Seam e si stanno usando le annotazioni oppure <literal>orm.xml</literal>, allora non c'è bisogno di fare niente di particolare per usare la sicurezza sulle entità."
#. Tag: title
#: Security.xml:2600
@@ -4773,31 +3372,14 @@
#. Tag: para
#: Security.xml:2602
#, no-c-format
-msgid ""
-"Seam provides a number of annotations that may be used as an alternative to "
-"<literal>@Restrict</literal>, which have the added advantage of providing "
-"compile-time safety as they don't support arbitrary EL expressions in the "
-"same way that <literal>@Restrict</literal> does."
-msgstr ""
-"Seam fornisce una serie di annotazioni che possono essere usate come "
-"un'alternativa a <literal>@Restrict</literal> e che hanno l'ulteriore "
-"vantaggio di essere verificabili durante la compilazione, dato che non "
-"gestiscono espressioni EL arbitrarie nel modo in cui succede per la "
-"<literal>@Restrict</literal>."
+msgid "Seam provides a number of annotations that may be used as an alternative to <literal>@Restrict</literal>, which have the added advantage of providing compile-time safety as they don't support arbitrary EL expressions in the same way that <literal>@Restrict</literal> does."
+msgstr "Seam fornisce una serie di annotazioni che possono essere usate come un'alternativa a <literal>@Restrict</literal> e che hanno l'ulteriore vantaggio di essere verificabili durante la compilazione, dato che non gestiscono espressioni EL arbitrarie nel modo in cui succede per la <literal>@Restrict</literal>."
#. Tag: para
#: Security.xml:2608
#, no-c-format
-msgid ""
-"Out of the box, Seam comes with annotations for standard CRUD-based "
-"permissions, however it is a simple matter to add your own. The following "
-"annotations are provided in the <literal>org.jboss.seam.annotations."
-"security</literal> package:"
-msgstr ""
-"Così com'è, Seam contiene delle annotazioni per i permessi standard per le "
-"operazioni CRUD, comunque è solo questione di aggiungerne altre. Le seguenti "
-"annotazioni sono fornire nel package <literal>org.jboss.seam.annotations."
-"security</literal>:"
+msgid "Out of the box, Seam comes with annotations for standard CRUD-based permissions, however it is a simple matter to add your own. The following annotations are provided in the <literal>org.jboss.seam.annotations.security</literal> package:"
+msgstr "Così com'è, Seam contiene delle annotazioni per i permessi standard per le operazioni CRUD, comunque è solo questione di aggiungerne altre. Le seguenti annotazioni sono fornire nel package <literal>org.jboss.seam.annotations.security</literal>:"
#. Tag: para
#: Security.xml:2615
@@ -4826,16 +3408,8 @@
#. Tag: para
#: Security.xml:2628
#, no-c-format
-msgid ""
-"To use these annotations, simply place them on the method or parameter for "
-"which you wish to perform a security check. If placed on a method, then they "
-"should specify a target class for which the permission will be checked. Take "
-"the following example:"
-msgstr ""
-"Per usare queste annotazioni basta metterle sul metodo o sul parametro per "
-"il quale si vuole eseguire il controllo di sicurezza. Se messe su un metodo, "
-"allora dovranno specificare la classe obiettivo per la quale il permesso "
-"deve essere controllato. Si prenda il seguente esempio:"
+msgid "To use these annotations, simply place them on the method or parameter for which you wish to perform a security check. If placed on a method, then they should specify a target class for which the permission will be checked. Take the following example:"
+msgstr "Per usare queste annotazioni basta metterle sul metodo o sul parametro per il quale si vuole eseguire il controllo di sicurezza. Se messe su un metodo, allora dovranno specificare la classe obiettivo per la quale il permesso deve essere controllato. Si prenda il seguente esempio:"
#. Tag: programlisting
#: Security.xml:2634
@@ -4854,34 +3428,14 @@
#. Tag: para
#: Security.xml:2636
#, no-c-format
-msgid ""
-"In this example, a permission check will be performed for the user to ensure "
-"that they have the rights to create new <literal>Customer</literal> objects. "
-"The target of the permission check will be <literal>Customer.class</literal> "
-"(the actual <literal>java.lang.Class</literal> instance itself), and the "
-"action is the lower case representation of the annotation name, which in "
-"this example is <literal>insert</literal>."
-msgstr ""
-"In questo esempio un controllo di permessi viene fatto sull'utente per "
-"assicurarsi che abbia i diritti per creare un nuovo oggetto "
-"<literal>Customer</literal>. L'obiettivo del controllo di permessi sarà "
-"<literal>Customer.class</literal> (l'effettiva istanza di <literal>java.lang."
-"Class</literal>) e l'azione è la rappresentazione a lettere minuscole del "
-"nome dell'annotazione, che in questo esempio è <literal>insert</literal>."
+msgid "In this example, a permission check will be performed for the user to ensure that they have the rights to create new <literal>Customer</literal> objects. The target of the permission check will be <literal>Customer.class</literal> (the actual <literal>java.lang.Class</literal> instance itself), and the action is the lower case representation of the annotation name, which in this example is <literal>insert</literal>."
+msgstr "In questo esempio un controllo di permessi viene fatto sull'utente per assicurarsi che abbia i diritti per creare un nuovo oggetto <literal>Customer</literal>. L'obiettivo del controllo di permessi sarà <literal>Customer.class</literal> (l'effettiva istanza di <literal>java.lang.Class</literal>) e l'azione è la rappresentazione a lettere minuscole del nome dell'annotazione, che in questo esempio è <literal>insert</literal>."
#. Tag: para
#: Security.xml:2643
#, no-c-format
-msgid ""
-"It is also possible to annotate the parameters of a component method in the "
-"same way. If this is done, then it is not required to specify a permission "
-"target (as the parameter value itself will be the target of the permission "
-"check):"
-msgstr ""
-"E' anche possibile annotare i parametri di un metodo di un componente allo "
-"stesso modo. Se viene fatto in questo modo non è richiesto di specificare "
-"l'obiettivo del permesso (dato che il valore stesso del parametro sarà "
-"l'obiettivo del controllo di permessi):"
+msgid "It is also possible to annotate the parameters of a component method in the same way. If this is done, then it is not required to specify a permission target (as the parameter value itself will be the target of the permission check):"
+msgstr "E' anche possibile annotare i parametri di un metodo di un componente allo stesso modo. Se viene fatto in questo modo non è richiesto di specificare l'obiettivo del permesso (dato che il valore stesso del parametro sarà l'obiettivo del controllo di permessi):"
#. Tag: programlisting
#: Security.xml:2648
@@ -4898,12 +3452,8 @@
#. Tag: para
#: Security.xml:2650
#, no-c-format
-msgid ""
-"To create your own security annotation, you simply need to annotate it with "
-"<literal>@PermissionCheck</literal>, for example:"
-msgstr ""
-"Per creare una propria annotazione di sicurezza basta annotarla con "
-"<literal>@PermissionCheck</literal>, ad esempio:"
+msgid "To create your own security annotation, you simply need to annotate it with <literal>@PermissionCheck</literal>, for example:"
+msgstr "Per creare una propria annotazione di sicurezza basta annotarla con <literal>@PermissionCheck</literal>, ad esempio:"
#. Tag: programlisting
#: Security.xml:2654
@@ -4930,15 +3480,8 @@
#. Tag: para
#: Security.xml:2656
#, no-c-format
-msgid ""
-"If you wish to override the default permisison action name (which is the "
-"lower case version of the annotation name) with another value, you can "
-"specify it within the <literal>@PermissionCheck</literal> annotation:"
-msgstr ""
-"Se si vuole modificare il nome dell'azione di default del permesso (che è la "
-"versione a lettere minuscole del nome dell'annotazione) con un altro valore, "
-"è possibile specificarlo all'interno dell'annotazione "
-"<literal>@PermissionCheck</literal>:"
+msgid "If you wish to override the default permisison action name (which is the lower case version of the annotation name) with another value, you can specify it within the <literal>@PermissionCheck</literal> annotation:"
+msgstr "Se si vuole modificare il nome dell'azione di default del permesso (che è la versione a lettere minuscole del nome dell'annotazione) con un altro valore, è possibile specificarlo all'interno dell'annotazione <literal>@PermissionCheck</literal>:"
#. Tag: programlisting
#: Security.xml:2661
@@ -4955,28 +3498,8 @@
#. Tag: para
#: Security.xml:2668
#, no-c-format
-msgid ""
-"In addition to supporting typesafe permission annotation, Seam Security also "
-"provides typesafe role annotations that allow you to restrict access to "
-"component methods based on the role memberships of the currently "
-"authenticated user. Seam provides one such annotation out of the box, "
-"<literal>org.jboss.seam.annotations.security.Admin</literal>, used to "
-"restrict access to a method to users that are a member of the "
-"<literal>admin</literal> role (so long as your own application supports such "
-"a role). To create your own role annotations, simply meta-annotate them with "
-"<literal>org.jboss.seam.annotations.security.RoleCheck</literal>, like in "
-"the following example:"
-msgstr ""
-"In aggiunta alla gestione tipizzata delle annotazioni sui permessi, la "
-"sicurezza di Seam fornisce anche le annotazioni tipizzate per i ruoli che "
-"consentono di limitare l'accesso ai metodi dei componenti in base "
-"all'appartenenza ad un ruolo dell'utente attualmente autenticato. Seam "
-"fornisce una di queste annotazioni già fatta, <literal>org.jboss.seam."
-"annotations.security.Admin</literal>, usata per limitare l'accesso ad un "
-"metodo agli utenti che sono membri del ruolo <literal>admin</literal> "
-"(purché l'applicazione gestisca un tale ruolo). Per creare le proprie "
-"annotazioni per i ruoli basta meta-annotarle con <literal>org.jboss.seam."
-"annotations.security.RoleCheck</literal>, come nel seguente esempio:"
+msgid "In addition to supporting typesafe permission annotation, Seam Security also provides typesafe role annotations that allow you to restrict access to component methods based on the role memberships of the currently authenticated user. Seam provides one such annotation out of the box, <literal>org.jboss.seam.annotations.security.Admin</literal>, used to restrict access to a method to users that are a member of the <literal>admin</literal> role (so long as your own application supports such a role). To create your own role annotations, simply meta-annotate them with <literal>org.jboss.seam.annotations.security.RoleCheck</literal>, like in the following example:"
+msgstr "In aggiunta alla gestione tipizzata delle annotazioni sui permessi, la sicurezza di Seam fornisce anche le annotazioni tipizzate per i ruoli che consentono di limitare l'accesso ai metodi dei componenti in base all'appartenenza ad un ruolo dell'utente attualmente autenticato. Seam fornisce una di queste annotazioni già fatta, <literal>org.jboss.seam.annotations.security.Admin</literal>, usata per limitare l'accesso ad un metodo agli utenti che sono membri del ruolo <literal>admin</literal> (purché l'applicazione gestisca un tale ruolo). Per creare le proprie annotazioni per i ruoli basta meta-annotarle con <literal>org.jboss.seam.annotations.security.RoleCheck</literal>, come nel seguente esempio:"
#. Tag: programlisting
#: Security.xml:2677
@@ -5001,18 +3524,8 @@
#. Tag: para
#: Security.xml:2679
#, no-c-format
-msgid ""
-"Any methods subsequently annotated with the <literal>@User</literal> "
-"annotation as shown in the above example will be automatically intercepted "
-"and the user checked for the membership of the corresponding role name "
-"(which is the lower case version of the annotation name, in this case "
-"<literal>user</literal>)."
-msgstr ""
-"Qualsiasi metodo successivamente annotato con l'annotazione <literal>@User</"
-"literal> come mostrata nell'esempio precedente, sarà automaticamente "
-"intercettato e sarà verificata l'appartenenza dell'utente al ruolo con il "
-"nome corrispondente (che è la versione a lettere minuscole del nome "
-"dell'annotazione, in questo caso <literal>user</literal>)."
+msgid "Any methods subsequently annotated with the <literal>@User</literal> annotation as shown in the above example will be automatically intercepted and the user checked for the membership of the corresponding role name (which is the lower case version of the annotation name, in this case <literal>user</literal>)."
+msgstr "Qualsiasi metodo successivamente annotato con l'annotazione <literal>@User</literal> come mostrata nell'esempio precedente, sarà automaticamente intercettato e sarà verificata l'appartenenza dell'utente al ruolo con il nome corrispondente (che è la versione a lettere minuscole del nome dell'annotazione, in questo caso <literal>user</literal>)."
#. Tag: title
#: Security.xml:2688
@@ -5023,23 +3536,14 @@
#. Tag: para
#: Security.xml:2690
#, no-c-format
-msgid ""
-"Seam Security provides an extensible framework for resolving application "
-"permissions. The following class diagram shows an overview of the main "
-"components of the permission framework:"
-msgstr ""
-"La sicurezza di Seam fornisce un framework espandibile per risolvere i "
-"permessi dell'applicazione. Il seguente diagramma di classi mostra una "
-"panoramica dei componenti principali del framework dei permessi:"
+msgid "Seam Security provides an extensible framework for resolving application permissions. The following class diagram shows an overview of the main components of the permission framework:"
+msgstr "La sicurezza di Seam fornisce un framework espandibile per risolvere i permessi dell'applicazione. Il seguente diagramma di classi mostra una panoramica dei componenti principali del framework dei permessi:"
#. Tag: para
#: Security.xml:2704
#, no-c-format
-msgid ""
-"The relevant classes are explained in more detail in the following sections."
-msgstr ""
-"Le classi rilevanti sono spiegate in maggiore dettaglio nel seguente "
-"paragrafo."
+msgid "The relevant classes are explained in more detail in the following sections."
+msgstr "Le classi rilevanti sono spiegate in maggiore dettaglio nel seguente paragrafo."
#. Tag: title
#: Security.xml:2709
@@ -5050,39 +3554,20 @@
#. Tag: para
#: Security.xml:2711
#, no-c-format
-msgid ""
-"This is actually an interface, which provides methods for resolving "
-"individual object permissions. Seam provides the following built-in "
-"<literal>PermissionResolver</literal> implementations, which are described "
-"in more detail later in the chapter:"
-msgstr ""
-"Questa è in realtà un'interfaccia che fornisce i metodi per risolvere i "
-"singoli permessi sugli oggetti. Seam fornisce le seguenti implementazioni "
-"già fatte di <literal>PermissionResolver</literal>, che sono descritte in "
-"maggiore dettaglio più avanti in questo capitolo:"
+msgid "This is actually an interface, which provides methods for resolving individual object permissions. Seam provides the following built-in <literal>PermissionResolver</literal> implementations, which are described in more detail later in the chapter:"
+msgstr "Questa è in realtà un'interfaccia che fornisce i metodi per risolvere i singoli permessi sugli oggetti. Seam fornisce le seguenti implementazioni già fatte di <literal>PermissionResolver</literal>, che sono descritte in maggiore dettaglio più avanti in questo capitolo:"
#. Tag: para
#: Security.xml:2719
#, no-c-format
-msgid ""
-"<literal>RuleBasedPermissionResolver</literal> - This permission resolver "
-"uses Drools to resolve rule-based permission checks."
-msgstr ""
-"<literal>RuleBasedPermissionResolver</literal> - Questo risolutore di "
-"permessi usa Drools per risolvere i controlli di permesso basati sulle "
-"regole."
+msgid "<literal>RuleBasedPermissionResolver</literal> - This permission resolver uses Drools to resolve rule-based permission checks."
+msgstr "<literal>RuleBasedPermissionResolver</literal> - Questo risolutore di permessi usa Drools per risolvere i controlli di permesso basati sulle regole."
#. Tag: para
#: Security.xml:2723
#, no-c-format
-msgid ""
-"<literal>PersistentPermissionResolver</literal> - This permission resolver "
-"stores object permissions in a persistent store, such as a relational "
-"database."
-msgstr ""
-"<literal>PersistentPermissionResolver</literal> - Questo risolutore di "
-"permessi memorizza gli oggetti permesso in un dispositivo persistente, come "
-"un database relazionale."
+msgid "<literal>PersistentPermissionResolver</literal> - This permission resolver stores object permissions in a persistent store, such as a relational database."
+msgstr "<literal>PersistentPermissionResolver</literal> - Questo risolutore di permessi memorizza gli oggetti permesso in un dispositivo persistente, come un database relazionale."
#. Tag: title
#: Security.xml:2729
@@ -5093,21 +3578,8 @@
#. Tag: para
#: Security.xml:2731
#, no-c-format
-msgid ""
-"It is very simple to implement your own permission resolver. The "
-"<literal>PermissionResolver</literal> interface defines only two methods "
-"that must be implemented, as shown by the following table. By deploying your "
-"own <literal>PermissionResolver</literal> implementation in your Seam "
-"project, it will be automatically scanned during deployment and registered "
-"with the default <literal>ResolverChain</literal>."
-msgstr ""
-"E' molto semplice implementare il proprio risolutore di permessi. "
-"L'interfaccia <literal>PermissionResolver</literal> definisce solo due "
-"metodi che devono essere implementati, come mostra la seguente tabella. "
-"Includendo la propria implementazione di <literal>PermissionResolver</"
-"literal> nel proprio progetto Seam, essa sarà automaticamente rilevata "
-"durante l'esecuzione e registrata nel <literal>ResolverChain</literal> "
-"predefinito."
+msgid "It is very simple to implement your own permission resolver. The <literal>PermissionResolver</literal> interface defines only two methods that must be implemented, as shown by the following table. By deploying your own <literal>PermissionResolver</literal> implementation in your Seam project, it will be automatically scanned during deployment and registered with the default <literal>ResolverChain</literal>."
+msgstr "E' molto semplice implementare il proprio risolutore di permessi. L'interfaccia <literal>PermissionResolver</literal> definisce solo due metodi che devono essere implementati, come mostra la seguente tabella. Includendo la propria implementazione di <literal>PermissionResolver</literal> nel proprio progetto Seam, essa sarà automaticamente rilevata durante l'esecuzione e registrata nel <literal>ResolverChain</literal> predefinito."
#. Tag: title
#: Security.xml:2739
@@ -5116,7 +3588,9 @@
msgstr "L'interfaccia PermissionResolver"
#. Tag: para
-#: Security.xml:2750 Security.xml:3165 Security.xml:3786
+#: Security.xml:2750
+#: Security.xml:3165
+#: Security.xml:3786
#, no-c-format
msgid "Return type"
msgstr "Tipo restituito"
@@ -5130,18 +3604,8 @@
#. Tag: para
#: Security.xml:2775
#, no-c-format
-msgid ""
-"This method must resolve whether the currently authenticated user (obtained "
-"via a call to <literal>Identity.getPrincipal()</literal>) has the permission "
-"specified by the <literal>target</literal> and <literal>action</literal> "
-"parameters. It should return <literal>true</literal> if the user has the "
-"permission, or <literal>false</literal> if they don't."
-msgstr ""
-"Questo metodo deve stabilire se l'utente attualmente autenticato (ottenuto "
-"tramite una chiamata a <literal>Identity.getPrincipal()</literal>) ha il "
-"permesso specificato dai parametri <literal>target</literal> e "
-"<literal>action</literal>. Deve restituire <literal>true</literal> se "
-"l'utente ha il permesso, oppure <literal>false</literal> se non ce l'ha."
+msgid "This method must resolve whether the currently authenticated user (obtained via a call to <literal>Identity.getPrincipal()</literal>) has the permission specified by the <literal>target</literal> and <literal>action</literal> parameters. It should return <literal>true</literal> if the user has the permission, or <literal>false</literal> if they don't."
+msgstr "Questo metodo deve stabilire se l'utente attualmente autenticato (ottenuto tramite una chiamata a <literal>Identity.getPrincipal()</literal>) ha il permesso specificato dai parametri <literal>target</literal> e <literal>action</literal>. Deve restituire <literal>true</literal> se l'utente ha il permesso, oppure <literal>false</literal> se non ce l'ha."
#. Tag: literal
#: Security.xml:2787
@@ -5158,29 +3622,13 @@
#. Tag: para
#: Security.xml:2796
#, no-c-format
-msgid ""
-"This method should remove any objects from the specified set, that would "
-"return <literal>true</literal> if passed to the <literal>hasPermission()</"
-"literal> method with the same <literal>action</literal> parameter value."
-msgstr ""
-"Questo metodo deve rimuovere dall'insieme specificato tutti gli oggetti per "
-"i quali si otterrebbe <literal>true</literal> se venissero passati al metodo "
-"<literal>hasPermission()</literal> con lo stesso valore del parametro "
-"<literal>action</literal>."
+msgid "This method should remove any objects from the specified set, that would return <literal>true</literal> if passed to the <literal>hasPermission()</literal> method with the same <literal>action</literal> parameter value."
+msgstr "Questo metodo deve rimuovere dall'insieme specificato tutti gli oggetti per i quali si otterrebbe <literal>true</literal> se venissero passati al metodo <literal>hasPermission()</literal> con lo stesso valore del parametro <literal>action</literal>."
#. Tag: para
#: Security.xml:2809
#, no-c-format
-msgid ""
-"As they are cached in the user's session, any custom "
-"<literal>PermissionResolver</literal> implementations must adhere to a "
-"couple of restrictions. Firstly, they may not contain any state that is "
-"finer-grained than session scope (and the scope of the component itself "
-"should either be application or session). Secondly, they must not use "
-"dependency injection as they may be accessed from multiple threads "
-"simultaneously. In fact, for performance reasons it is recommended that they "
-"are annotated with <literal>@BypassInterceptors</literal> to bypass Seam's "
-"interceptor stack altogether."
+msgid "As they are cached in the user's session, any custom <literal>PermissionResolver</literal> implementations must adhere to a couple of restrictions. Firstly, they may not contain any state that is finer-grained than session scope (and the scope of the component itself should either be application or session). Secondly, they must not use dependency injection as they may be accessed from multiple threads simultaneously. In fact, for performance reasons it is recommended that they are annotated with <literal>@BypassInterceptors</literal> to bypass Seam's interceptor stack altogether."
msgstr ""
#. Tag: title
@@ -5192,111 +3640,44 @@
#. Tag: para
#: Security.xml:2826
#, no-c-format
-msgid ""
-"A <literal>ResolverChain</literal> contains an ordered list of "
-"<literal>PermissionResolver</literal>s, for the purpose of resolving object "
-"permissions for a particular object class or permission target."
-msgstr ""
-"Un <literal>ResolverChain</literal> contiene un elenco ordinato di "
-"<literal>PermissionResolver</literal>, con lo scopo di risolvere i permessi "
-"sugli oggetti di una determinata classe oppure i permessi obiettivo."
+msgid "A <literal>ResolverChain</literal> contains an ordered list of <literal>PermissionResolver</literal>s, for the purpose of resolving object permissions for a particular object class or permission target."
+msgstr "Un <literal>ResolverChain</literal> contiene un elenco ordinato di <literal>PermissionResolver</literal>, con lo scopo di risolvere i permessi sugli oggetti di una determinata classe oppure i permessi obiettivo."
#. Tag: para
#: Security.xml:2831
#, no-c-format
-msgid ""
-"The default <literal>ResolverChain</literal> consists of all permission "
-"resolvers discovered during application deployment. The <literal>org.jboss."
-"seam.security.defaultResolverChainCreated</literal> event is raised (and the "
-"<literal>ResolverChain</literal> instance passed as an event parameter) when "
-"the default <literal>ResolverChain</literal> is created. This allows "
-"additional resolvers that for some reason were not discovered during "
-"deployment to be added, or for resolvers that are in the chain to be re-"
-"ordered or removed."
+msgid "The default <literal>ResolverChain</literal> consists of all permission resolvers discovered during application deployment. The <literal>org.jboss.seam.security.defaultResolverChainCreated</literal> event is raised (and the <literal>ResolverChain</literal> instance passed as an event parameter) when the default <literal>ResolverChain</literal> is created. This allows additional resolvers that for some reason were not discovered during deployment to be added, or for resolvers that are in the chain to be re-ordered or removed."
msgstr ""
#. Tag: para
#: Security.xml:2840
#, no-c-format
-msgid ""
-"The following sequence diagram shows the interaction between the components "
-"of the permission framework during a permission check (explanation follows). "
-"A permission check can originate from a number of possible sources, for "
-"example - the security interceptor, the <literal>s:hasPermission</literal> "
-"EL function, or via an API call to <literal>Identity.checkPermission</"
-"literal>:"
-msgstr ""
-"Il seguente diagramma di sequenza mostra l'interazione tra i componenti del "
-"framework dei permessi durante la verifica di un permesso (segue la "
-"spiegazione). Una verifica di permesso può essere originata da una serie di "
-"possibili fonti, ad esempio gli intercettori di sicurezza, la funzione EL "
-"<literal>s:hasPermission</literal>, oppure tramite una chiamata alla API "
-"<literal>Identity.checkPermission</literal>:"
+msgid "The following sequence diagram shows the interaction between the components of the permission framework during a permission check (explanation follows). A permission check can originate from a number of possible sources, for example - the security interceptor, the <literal>s:hasPermission</literal> EL function, or via an API call to <literal>Identity.checkPermission</literal>:"
+msgstr "Il seguente diagramma di sequenza mostra l'interazione tra i componenti del framework dei permessi durante la verifica di un permesso (segue la spiegazione). Una verifica di permesso può essere originata da una serie di possibili fonti, ad esempio gli intercettori di sicurezza, la funzione EL <literal>s:hasPermission</literal>, oppure tramite una chiamata alla API <literal>Identity.checkPermission</literal>:"
#. Tag: para
#: Security.xml:2858
#, no-c-format
-msgid ""
-"1. A permission check is initiated somewhere (either in code or via an EL "
-"expression) resulting in a call to <literal>Identity.hasPermission()</"
-"literal>."
-msgstr ""
-"1. Una verifica di permesso viene iniziata da qualche parte (dal codice o "
-"tramite un'espressione EL) provocando una chiamata a <literal>Identity."
-"hasPermission()</literal>."
+msgid "1. A permission check is initiated somewhere (either in code or via an EL expression) resulting in a call to <literal>Identity.hasPermission()</literal>."
+msgstr "1. Una verifica di permesso viene iniziata da qualche parte (dal codice o tramite un'espressione EL) provocando una chiamata a <literal>Identity.hasPermission()</literal>."
#. Tag: para
#: Security.xml:2864
#, no-c-format
-msgid ""
-"1.1. <literal>Identity</literal> invokes <literal>PermissionMapper."
-"resolvePermission()</literal>, passing in the permission to be resolved."
-msgstr ""
-"1.1. <literal>Identity</literal> chiama <literal>PermissionMapper."
-"resolvePermission()</literal>, passando il permesso che deve essere risolto."
+msgid "1.1. <literal>Identity</literal> invokes <literal>PermissionMapper.resolvePermission()</literal>, passing in the permission to be resolved."
+msgstr "1.1. <literal>Identity</literal> chiama <literal>PermissionMapper.resolvePermission()</literal>, passando il permesso che deve essere risolto."
#. Tag: para
#: Security.xml:2871
#, no-c-format
-msgid ""
-"1.1.1. <literal>PermissionMapper</literal> maintains a <literal>Map</"
-"literal> of <literal>ResolverChain</literal> instances, keyed by class. It "
-"uses this map to locate the correct <literal>ResolverChain</literal> for the "
-"permission's target object. Once it has the correct <literal>ResolverChain</"
-"literal>, it retrieves the list of <literal>PermissionResolver</literal>s it "
-"contains via a call to <literal>ResolverChain.getResolvers()</literal>."
-msgstr ""
-"1.1.1. <literal>PermissionMapper</literal> conserva una <literal>Map</"
-"literal> di istanze di <literal>ResolverChain</literal>, indicizzate per "
-"classe. Usa questa mappa per identificare la giusta <literal>ResolverChain</"
-"literal> per l'oggetto obiettivo del permesso. Una volta che ha la giusta "
-"<literal>ResolverChain</literal>, recupera l'elenco dei "
-"<literal>PermissionResolver</literal> che contiene tramite una chiamata a "
-"<literal>ResolverChain.getResolvers()</literal>."
+msgid "1.1.1. <literal>PermissionMapper</literal> maintains a <literal>Map</literal> of <literal>ResolverChain</literal> instances, keyed by class. It uses this map to locate the correct <literal>ResolverChain</literal> for the permission's target object. Once it has the correct <literal>ResolverChain</literal>, it retrieves the list of <literal>PermissionResolver</literal>s it contains via a call to <literal>ResolverChain.getResolvers()</literal>."
+msgstr "1.1.1. <literal>PermissionMapper</literal> conserva una <literal>Map</literal> di istanze di <literal>ResolverChain</literal>, indicizzate per classe. Usa questa mappa per identificare la giusta <literal>ResolverChain</literal> per l'oggetto obiettivo del permesso. Una volta che ha la giusta <literal>ResolverChain</literal>, recupera l'elenco dei <literal>PermissionResolver</literal> che contiene tramite una chiamata a <literal>ResolverChain.getResolvers()</literal>."
#. Tag: para
#: Security.xml:2881
#, no-c-format
-msgid ""
-"1.1.2. For each <literal>PermissionResolver</literal> in the "
-"<literal>ResolverChain</literal>, the <literal>PermissionMapper</literal> "
-"invokes its <literal>hasPermission()</literal> method, passing in the "
-"permission instance to be checked. If any of the "
-"<literal>PermissionResolver</literal>s return <literal>true</literal>, then "
-"the permission check has succeeded and the <literal>PermissionMapper</"
-"literal> also returns <literal>true</literal> to <literal>Identity</"
-"literal>. If none of the <literal>PermissionResolver</literal>s return true, "
-"then the permission check has failed."
-msgstr ""
-"1.1.2. Per ciascun <literal>PermissionResolver</literal> nel "
-"<literal>ResolverChain</literal>, il <literal>PermissionMapper</literal> "
-"chiama il suo metodo <literal>hasPermission()</literal>, passando l'istanza "
-"del permesso da verificare. Se qualcuno dei <literal>PermissionResolver</"
-"literal> restituisce <literal>true</literal>, allora la verifica del "
-"permesso ha avuto successo e il <literal>PermissionMapper</literal> "
-"restituisce anch'esso <literal>true</literal> a <literal>Identity</literal>. "
-"Se nessuno dei <literal>PermissionResolver</literal> restituisce "
-"<literal>true</literal>, allora la verifica del permesso è fallita."
+msgid "1.1.2. For each <literal>PermissionResolver</literal> in the <literal>ResolverChain</literal>, the <literal>PermissionMapper</literal> invokes its <literal>hasPermission()</literal> method, passing in the permission instance to be checked. If any of the <literal>PermissionResolver</literal>s return <literal>true</literal>, then the permission check has succeeded and the <literal>PermissionMapper</literal> also returns <literal>true</literal> to <literal>Identity</literal>. If none of the <literal>PermissionResolver</literal>s return true, then the permission check has failed."
+msgstr "1.1.2. Per ciascun <literal>PermissionResolver</literal> nel <literal>ResolverChain</literal>, il <literal>PermissionMapper</literal> chiama il suo metodo <literal>hasPermission()</literal>, passando l'istanza del permesso da verificare. Se qualcuno dei <literal>PermissionResolver</literal> restituisce <literal>true</literal>, allora la verifica del permesso ha avuto successo e il <literal>PermissionMapper</literal> restituisce anch'esso <literal>true</literal> a <literal>Identity</literal>. Se nessuno dei <literal>PermissionResolver</literal> restituisce <literal>true</literal>, allora la verifica del permesso è fallita."
#. Tag: title
#: Security.xml:2897
@@ -5307,23 +3688,8 @@
#. Tag: para
#: Security.xml:2899
#, no-c-format
-msgid ""
-"One of the built-in permission resolvers provided by Seam, "
-"<literal>RuleBasedPermissionResolver</literal> allows permissions to be "
-"evaluated based on a set of Drools (JBoss Rules) security rules. A couple of "
-"the advantages of using a rule engine are 1) a centralized location for the "
-"business logic that is used to evaluate user permissions, and 2) speed - "
-"Drools uses very efficient algorithms for evaluating large numbers of "
-"complex rules involving multiple conditions."
-msgstr ""
-"Uno dei risolutori di permesso già fatti forniti da Seam, "
-"<literal>RuleBasedPermissionResolver</literal>, consente di valutare i "
-"permessi in base ad un insieme di regole di sicurezza Drools (JBoss Rules). "
-"Un paio di vantaggi nell'uso di un motore di regole sono: 1) una posizione "
-"centralizzata della logica di gestione che è usata per valutare i permessi "
-"degli utenti; 2) la velocità, Drools usa algoritmi molto efficienti per "
-"valutare grandi quantità di regole complesse comprendenti condizioni "
-"multiple."
+msgid "One of the built-in permission resolvers provided by Seam, <literal>RuleBasedPermissionResolver</literal> allows permissions to be evaluated based on a set of Drools (JBoss Rules) security rules. A couple of the advantages of using a rule engine are 1) a centralized location for the business logic that is used to evaluate user permissions, and 2) speed - Drools uses very efficient algorithms for evaluating large numbers of complex rules involving multiple conditions."
+msgstr "Uno dei risolutori di permesso già fatti forniti da Seam, <literal>RuleBasedPermissionResolver</literal>, consente di valutare i permessi in base ad un insieme di regole di sicurezza Drools (JBoss Rules). Un paio di vantaggi nell'uso di un motore di regole sono: 1) una posizione centralizzata della logica di gestione che è usata per valutare i permessi degli utenti; 2) la velocità, Drools usa algoritmi molto efficienti per valutare grandi quantità di regole complesse comprendenti condizioni multiple."
#. Tag: title
#: Security.xml:2908
@@ -5334,14 +3700,8 @@
#. Tag: para
#: Security.xml:2910
#, no-c-format
-msgid ""
-"If using the rule-based permission features provided by Seam Security, the "
-"following jar files are required by Drools to be distributed with your "
-"project:"
-msgstr ""
-"Se si usa la funzione dei permessi basati sulle regole fornita dalla "
-"sicurezza di Seam, Drools richiede che i seguenti file jar siano distribuiti "
-"insieme al progetto:"
+msgid "If using the rule-based permission features provided by Seam Security, the following jar files are required by Drools to be distributed with your project:"
+msgstr "Se si usa la funzione dei permessi basati sulle regole fornita dalla sicurezza di Seam, Drools richiede che i seguenti file jar siano distribuiti insieme al progetto:"
#. Tag: para
#: Security.xml:2917
@@ -5374,7 +3734,8 @@
msgstr "mvel14.jar"
#. Tag: title
-#: Security.xml:2936 Security.xml:3128
+#: Security.xml:2936
+#: Security.xml:3128
#, no-c-format
msgid "Configuration"
msgstr "Configurazione"
@@ -5382,17 +3743,8 @@
#. Tag: para
#: Security.xml:2938
#, no-c-format
-msgid ""
-"The configuration for <literal>RuleBasedPermissionResolver</literal> "
-"requires that a Drools rule base is first configured in <literal>components."
-"xml</literal>. By default, it expects that the rule base is named "
-"<literal>securityRules</literal>, as per the following example:"
-msgstr ""
-"La configurazione per <literal>RuleBasedPermissionResolver</literal> "
-"richiede che una base di regole venga prima configurata in "
-"<literal>components.xml</literal>. Per difetto si aspetta che questa base di "
-"regole sia chiamata <literal>securityRules</literal>, come nel seguente "
-"esempio:"
+msgid "The configuration for <literal>RuleBasedPermissionResolver</literal> requires that a Drools rule base is first configured in <literal>components.xml</literal>. By default, it expects that the rule base is named <literal>securityRules</literal>, as per the following example:"
+msgstr "La configurazione per <literal>RuleBasedPermissionResolver</literal> richiede che una base di regole venga prima configurata in <literal>components.xml</literal>. Per difetto si aspetta che questa base di regole sia chiamata <literal>securityRules</literal>, come nel seguente esempio:"
#. Tag: programlisting
#: Security.xml:2944
@@ -5404,14 +3756,10 @@
" xmlns:drools=\"http://jboss.com/products/seam/drools\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
" xsi:schemaLocation=\n"
-" \"http://jboss.com/products/seam/core http://jboss.com/"
-"products/seam/core-2.1.xsd\n"
-" http://jboss.com/products/seam/components http://jboss."
-"com/products/seam/components-2.1.xsd\n"
-" http://jboss.com/products/seam/drools http://jboss.com/"
-"products/seam/drools-2.1.xsd\"\n"
-" http://jboss.com/products/seam/security http://jboss.com/"
-"products/seam/security-2.1.xsd\">\n"
+" \"http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd\n"
+" http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd\n"
+" http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.1.xsd\"\n"
+" http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd\">\n"
" \n"
" <drools:rule-base name=\"securityRules\">\n"
" <drools:rule-files>\n"
@@ -5427,14 +3775,10 @@
" xmlns:drools=\"http://jboss.com/products/seam/drools\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
" xsi:schemaLocation=\n"
-" \"http://jboss.com/products/seam/core http://jboss.com/"
-"products/seam/core-2.1.xsd\n"
-" http://jboss.com/products/seam/components http://jboss."
-"com/products/seam/components-2.1.xsd\n"
-" http://jboss.com/products/seam/drools http://jboss.com/"
-"products/seam/drools-2.1.xsd\"\n"
-" http://jboss.com/products/seam/security http://jboss.com/"
-"products/seam/security-2.1.xsd\">\n"
+" \"http://jboss.com/products/seam/core http://jboss.com/products/seam/core-2.1.xsd\n"
+" http://jboss.com/products/seam/components http://jboss.com/products/seam/components-2.1.xsd\n"
+" http://jboss.com/products/seam/drools http://jboss.com/products/seam/drools-2.1.xsd\"\n"
+" http://jboss.com/products/seam/security http://jboss.com/products/seam/security-2.1.xsd\">\n"
" \n"
" <drools:rule-base name=\"securityRules\">\n"
" <drools:rule-files>\n"
@@ -5447,36 +3791,24 @@
#. Tag: para
#: Security.xml:2946
#, no-c-format
-msgid ""
-"The default rule base name can be overridden by specifying the "
-"<literal>security-rules</literal> property for "
-"<literal>RuleBasedPermissionResolver</literal>:"
-msgstr ""
-"Il nome predefinito della base di regole può essere modificato specificando "
-"la proprietà <literal>security-rules</literal> per "
-"<literal>RuleBasedPermissionResolver</literal>:"
+msgid "The default rule base name can be overridden by specifying the <literal>security-rules</literal> property for <literal>RuleBasedPermissionResolver</literal>:"
+msgstr "Il nome predefinito della base di regole può essere modificato specificando la proprietà <literal>security-rules</literal> per <literal>RuleBasedPermissionResolver</literal>:"
#. Tag: programlisting
#: Security.xml:2951
#, no-c-format
msgid ""
"<![CDATA[\n"
-" <security:rule-based-permission-resolver security-rules=\"#"
-"{prodSecurityRules}\"/>]]>"
+" <security:rule-based-permission-resolver security-rules=\"#{prodSecurityRules}\"/>]]>"
msgstr ""
"<![CDATA[\n"
-" <security:rule-based-permission-resolver security-rules=\"#"
-"{prodSecurityRules}\"/>]]>"
+" <security:rule-based-permission-resolver security-rules=\"#{prodSecurityRules}\"/>]]>"
#. Tag: para
#: Security.xml:2953
#, no-c-format
-msgid ""
-"Once the <literal>RuleBase</literal> component is configured, it's time to "
-"write the security rules."
-msgstr ""
-"Una volta che il componente <literal>RuleBase</literal> è configurato, è il "
-"momento di scrivere le regole di sicurezza."
+msgid "Once the <literal>RuleBase</literal> component is configured, it's time to write the security rules."
+msgstr "Una volta che il componente <literal>RuleBase</literal> è configurato, è il momento di scrivere le regole di sicurezza."
#. Tag: title
#: Security.xml:2959
@@ -5487,31 +3819,14 @@
#. Tag: para
#: Security.xml:2961
#, no-c-format
-msgid ""
-"The first step to writing security rules is to create a new rule file in the "
-"<literal>/META-INF</literal> directory of your application's jar file. "
-"Usually this file would be named something like <literal>security.drl</"
-"literal>, however you can name it whatever you like as long as it is "
-"configured correspondingly in <literal>components.xml</literal>."
-msgstr ""
-"Il primo passo per scrivere delle regole di sicurezza è di creare un nuovo "
-"file di regole nella cartella <literal>/META-INF</literal> del file jar "
-"dell'applicazione. Di solito questo file dovrebbe essere chiamato qualcosa "
-"come <literal>security.drl</literal>, comunque lo si può chiamare nel modo "
-"che si preferisce purché sia configurato in maniera corrispondente in "
-"<literal>components.xml</literal>."
+msgid "The first step to writing security rules is to create a new rule file in the <literal>/META-INF</literal> directory of your application's jar file. Usually this file would be named something like <literal>security.drl</literal>, however you can name it whatever you like as long as it is configured correspondingly in <literal>components.xml</literal>."
+msgstr "Il primo passo per scrivere delle regole di sicurezza è di creare un nuovo file di regole nella cartella <literal>/META-INF</literal> del file jar dell'applicazione. Di solito questo file dovrebbe essere chiamato qualcosa come <literal>security.drl</literal>, comunque lo si può chiamare nel modo che si preferisce purché sia configurato in maniera corrispondente in <literal>components.xml</literal>."
#. Tag: para
#: Security.xml:2968
#, no-c-format
-msgid ""
-"So what should the security rules file contain? At this stage it might be a "
-"good idea to at least skim through the Drools documentation, however to get "
-"started here's an extremely simple example:"
-msgstr ""
-"Dunque, che cosa deve contenere il file delle regole di sicurezza? A questo "
-"punto potrebbe essere una buona idea almeno sbirciare nella documentazione "
-"Drools, comunque per partire ecco un esempio estremamente semplice:"
+msgid "So what should the security rules file contain? At this stage it might be a good idea to at least skim through the Drools documentation, however to get started here's an extremely simple example:"
+msgstr "Dunque, che cosa deve contenere il file delle regole di sicurezza? A questo punto potrebbe essere una buona idea almeno sbirciare nella documentazione Drools, comunque per partire ecco un esempio estremamente semplice:"
#. Tag: programlisting
#: Security.xml:2973
@@ -5546,196 +3861,68 @@
#. Tag: para
#: Security.xml:2975
#, no-c-format
-msgid ""
-"Let's break this down step by step. The first thing we see is the package "
-"declaration. A package in Drools is essentially a collection of rules. The "
-"package name can be anything you want - it doesn't relate to anything else "
-"outside the scope of the rule base."
-msgstr ""
-"Dividiamolo passo per passo. La prima cosa che vediamo è la dichiarazione "
-"del package. Un package in Drools è essenzialmente una collezione di regole. "
-"Il nome del package può essere qualsiasi, non è in relazione con niente che "
-"sia al di fuori della visibilità della base di regole."
+msgid "Let's break this down step by step. The first thing we see is the package declaration. A package in Drools is essentially a collection of rules. The package name can be anything you want - it doesn't relate to anything else outside the scope of the rule base."
+msgstr "Dividiamolo passo per passo. La prima cosa che vediamo è la dichiarazione del package. Un package in Drools è essenzialmente una collezione di regole. Il nome del package può essere qualsiasi, non è in relazione con niente che sia al di fuori della visibilità della base di regole."
#. Tag: para
#: Security.xml:2981
#, no-c-format
-msgid ""
-"The next thing we can notice is a couple of import statements for the "
-"<literal>PermissionCheck</literal> and <literal>Role</literal> classes. "
-"These imports inform the rules engine that we'll be referencing these "
-"classes within our rules."
-msgstr ""
-"La cosa successiva che possiano notare è un paio di dichiarazioni "
-"<literal>import</literal> per le classi <literal>PermissionCheck</literal> e "
-"<literal>Role</literal>. Questi <literal>import</literal> informano il "
-"motore di regole che all'interno delle nostre regole faremo riferimento a "
-"queste classi."
+msgid "The next thing we can notice is a couple of import statements for the <literal>PermissionCheck</literal> and <literal>Role</literal> classes. These imports inform the rules engine that we'll be referencing these classes within our rules."
+msgstr "La cosa successiva che possiano notare è un paio di dichiarazioni <literal>import</literal> per le classi <literal>PermissionCheck</literal> e <literal>Role</literal>. Questi <literal>import</literal> informano il motore di regole che all'interno delle nostre regole faremo riferimento a queste classi."
#. Tag: para
#: Security.xml:2987
#, no-c-format
-msgid ""
-"Finally we have the code for the rule. Each rule within a package should be "
-"given a unique name (usually describing the purpose of the rule). In this "
-"case our rule is called <literal>CanUserDeleteCustomers</literal> and will "
-"be used to check whether a user is allowed to delete a customer record."
-msgstr ""
-"Infine abbiamo il codice della regola. Ogni regola all'interno di un package "
-"deve avere un nome univoco (di solito descrive lo scopo della regola). In "
-"questo caso la nostra regola si chiama <literal>CanUserDeleteCustomers</"
-"literal> e verrà usata per verificare se ad un utente è consentito di "
-"cancellare un record relativo ad un cliente."
+msgid "Finally we have the code for the rule. Each rule within a package should be given a unique name (usually describing the purpose of the rule). In this case our rule is called <literal>CanUserDeleteCustomers</literal> and will be used to check whether a user is allowed to delete a customer record."
+msgstr "Infine abbiamo il codice della regola. Ogni regola all'interno di un package deve avere un nome univoco (di solito descrive lo scopo della regola). In questo caso la nostra regola si chiama <literal>CanUserDeleteCustomers</literal> e verrà usata per verificare se ad un utente è consentito di cancellare un record relativo ad un cliente."
#. Tag: para
#: Security.xml:2993
#, no-c-format
-msgid ""
-"Looking at the body of the rule definition we can notice two distinct "
-"sections. Rules have what is known as a left hand side (LHS) and a right "
-"hand side (RHS). The LHS consists of the conditional part of the rule, i.e. "
-"a list of conditions which must be satisfied for the rule to fire. The LHS "
-"is represented by the <literal>when</literal> section. The RHS is the "
-"consequence, or action section of the rule that will only be fired if all of "
-"the conditions in the LHS are met. The RHS is represented by the "
-"<literal>then</literal> section. The end of the rule is denoted by the "
-"<literal>end</literal> line."
-msgstr ""
-"Guardando il corpo della definizione della regola si possono notare due "
-"distinte sezioni. Le regole hanno quello che è noto come lato sinistro (LHS, "
-"left hand side) e un lato destro (RHS, right hand side). Il lato sinistro "
-"consiste nella parte condizionale della regola, cioè l'elenco delle "
-"condizioni che devono essere soddisfatte per la regola si applichi. Il lato "
-"sinistro è rappresentato dalla sezione <literal>when</literal>. Il lato "
-"destro è la conseguenza, o la parte di azione della regola che si applica "
-"solo se tutte le condizioni del lato sinistro sono verificate. Il lato "
-"destro è rappresentato dalla sezione <literal>then</literal>. La fine della "
-"regola è stabilita dalla linea <literal>end</literal>."
+msgid "Looking at the body of the rule definition we can notice two distinct sections. Rules have what is known as a left hand side (LHS) and a right hand side (RHS). The LHS consists of the conditional part of the rule, i.e. a list of conditions which must be satisfied for the rule to fire. The LHS is represented by the <literal>when</literal> section. The RHS is the consequence, or action section of the rule that will only be fired if all of the conditions in the LHS are met. The RHS is represented by the <literal>then</literal> section. The end of the rule is denoted by the <literal>end</literal> line."
+msgstr "Guardando il corpo della definizione della regola si possono notare due distinte sezioni. Le regole hanno quello che è noto come lato sinistro (LHS, left hand side) e un lato destro (RHS, right hand side). Il lato sinistro consiste nella parte condizionale della regola, cioè l'elenco delle condizioni che devono essere soddisfatte per la regola si applichi. Il lato sinistro è rappresentato dalla sezione <literal>when</literal>. Il lato destro è la conseguenza, o la parte di azione della regola che si applica solo se tutte le condizioni del lato sinistro sono verificate. Il lato destro è rappresentato dalla sezione <literal>then</literal>. La fine della regola è stabilita dalla linea <literal>end</literal>."
#. Tag: para
#: Security.xml:3002
#, no-c-format
-msgid ""
-"If we look at the LHS of the rule, we see two conditions listed there. Let's "
-"examine the first condition:"
-msgstr ""
-"Se guardiamo la parte sinistra della regola vediamo che ci sono due "
-"condizioni. Esaminiamo la prima condizione:"
+msgid "If we look at the LHS of the rule, we see two conditions listed there. Let's examine the first condition:"
+msgstr "Se guardiamo la parte sinistra della regola vediamo che ci sono due condizioni. Esaminiamo la prima condizione:"
#. Tag: programlisting
#: Security.xml:3006
#, no-c-format
-msgid ""
-"<![CDATA[c: PermissionCheck(target == \"customer\", action == \"delete\")]]>"
-msgstr ""
-"<![CDATA[c: PermissionCheck(target == \"customer\", action == \"delete\")]]>"
+msgid "<![CDATA[c: PermissionCheck(target == \"customer\", action == \"delete\")]]>"
+msgstr "<![CDATA[c: PermissionCheck(target == \"customer\", action == \"delete\")]]>"
#. Tag: para
#: Security.xml:3008
#, no-c-format
-msgid ""
-"In plain english, this condition is stating that there must exist a "
-"<literal>PermissionCheck</literal> object with a <literal>target</literal> "
-"property equal to \"customer\", and an <literal>action</literal> property "
-"equal to \"delete\" within the working memory."
-msgstr ""
-"Letta in inglese questa condizione dice che all'interno della working memory "
-"deve esistere un oggetto <literal>PermissionCheck</literal> con una "
-"proprietà <literal>target</literal> uguale a \"customer\" e una proprietà "
-"<literal>action</literal> uguale a \"delete\"."
+msgid "In plain english, this condition is stating that there must exist a <literal>PermissionCheck</literal> object with a <literal>target</literal> property equal to \"customer\", and an <literal>action</literal> property equal to \"delete\" within the working memory."
+msgstr "Letta in inglese questa condizione dice che all'interno della working memory deve esistere un oggetto <literal>PermissionCheck</literal> con una proprietà <literal>target</literal> uguale a \"customer\" e una proprietà <literal>action</literal> uguale a \"delete\"."
#. Tag: para
#: Security.xml:3014
#, no-c-format
-msgid ""
-"So what is the working memory? Also known as a \"stateful session\" in "
-"Drools terminology, the working memory is a session-scoped object that "
-"contains the contextual information that is required by the rules engine to "
-"make a decision about a permission check. Each time the "
-"<literal>hasPermission()</literal> method is called, a temporary "
-"<literal>PermissionCheck</literal> object, or <emphasis>Fact</emphasis>, is "
-"inserted into the working memory. This <literal>PermissionCheck</literal> "
-"corresponds exactly to the permission that is being checked, so for example "
-"if you call <literal>hasPermission(\"account\", \"create\")</literal> then a "
-"<literal>PermissionCheck</literal> object with a <literal>target</literal> "
-"equal to \"account\" and <literal>action</literal> equal to \"create\" will "
-"be inserted into the working memory for the duration of the permission check."
-msgstr ""
-"Dunque cos'è la working memory? Nota anche come \"stateful session\" nella "
-"terminologia Drools, la working memory è un oggetto collegato alla sessione "
-"che contiene le informazioni contestuali che sono richieste dal motore di "
-"regole per prendere una decisione sul controllo di permesso. Ogni volta che "
-"il metodo <literal>hasPermission()</literal> viene chiamato, viene creato un "
-"oggetto, o <emphasis>Fatto</emphasis>, temporaneo <literal>PermissionCheck</"
-"literal>, e viene inserito nella working memory. Questo "
-"<literal>PermissionCheck</literal> corrisponde esattamente al permesso che "
-"si sta controllando, così, ad esempio, se viene chiamato "
-"<literal>hasPermission(\"account\", \"create\")</literal> allora verrà "
-"inserito nella working memory un oggetto <literal>PermissionCheck</literal> "
-"con <literal>target</literal> uguale a \"account\" e <literal>action</"
-"literal> uguale a \"create\", per la durata del controllo di permesso."
+msgid "So what is the working memory? Also known as a \"stateful session\" in Drools terminology, the working memory is a session-scoped object that contains the contextual information that is required by the rules engine to make a decision about a permission check. Each time the <literal>hasPermission()</literal> method is called, a temporary <literal>PermissionCheck</literal> object, or <emphasis>Fact</emphasis>, is inserted into the working memory. This <literal>PermissionCheck</literal> corresponds exactly to the permission that is being checked, so for example if you call <literal>hasPermission(\"account\", \"create\")</literal> then a <literal>PermissionCheck</literal> object with a <literal>target</literal> equal to \"account\" and <literal>action</literal> equal to \"create\" will be inserted into the working memory for the duration of the permission check."
+msgstr "Dunque cos'è la working memory? Nota anche come \"stateful session\" nella terminologia Drools, la working memory è un oggetto collegato alla sessione che contiene le informazioni contestuali che sono richieste dal motore di regole per prendere una decisione sul controllo di permesso. Ogni volta che il metodo <literal>hasPermission()</literal> viene chiamato, viene creato un oggetto, o <emphasis>Fatto</emphasis>, temporaneo <literal>PermissionCheck</literal>, e viene inserito nella working memory. Questo <literal>PermissionCheck</literal> corrisponde esattamente al permesso che si sta controllando, così, ad esempio, se viene chiamato <literal>hasPermission(\"account\", \"create\")</literal> allora verrà inserito nella working memory un oggetto <literal>PermissionCheck</literal> con <literal>target</literal> uguale a \"account\" e <literal>action</literal> uguale a \"create\", per la durata del controllo di permesso."
#. Tag: para
#: Security.xml:3026
#, no-c-format
-msgid ""
-"Besides the <literal>PermissionCheck</literal> facts, there is also a "
-"<literal>org.jboss.seam.security.Role</literal> fact for each of the roles "
-"that the authenticated user is a member of. These <literal>Role</literal> "
-"facts are synchronized with the user's authenticated roles at the beginning "
-"of every permission check. As a consequence, any <literal>Role</literal> "
-"object that is inserted into the working memory during the course of a "
-"permission check will be removed before the next permission check occurs, if "
-"the authenticated user is not actually a member of that role. Besides the "
-"<literal>PermissionCheck</literal> and <literal>Role</literal> facts, the "
-"working memory also contains the <literal>java.security.Principal</literal> "
-"object that was created as a result of the authentication process."
-msgstr ""
-"Accanto al fatto <literal>PermissionCheck</literal> c'è anche un fatto "
-"<literal>org.jboss.seam.security.Role</literal> per ogni ruolo di cui "
-"l'utente autenticato è membro. Questi fatti <literal>Role</literal> sono "
-"sincronizzati con i ruoli dell'utente autenticato all'inizio di ogni "
-"controllo di permesso. Di conseguenza qualsiasi oggetto <literal>Role</"
-"literal> che venisse inserito nella working memory nel corso del controllo "
-"di permesso sarebbe rimosso prima che il controllo di permesso successivo "
-"avvenga, a meno che l'utente autenticato non sia effettivamente membro di "
-"quel ruolo. Insieme ai fatti <literal>PermissionCheck</literal> e "
-"<literal>Role</literal> la working memory contiene anche l'oggetto "
-"<literal>java.security.Principal</literal> che era stato creato come "
-"risultato del processo di autentifica."
+msgid "Besides the <literal>PermissionCheck</literal> facts, there is also a <literal>org.jboss.seam.security.Role</literal> fact for each of the roles that the authenticated user is a member of. These <literal>Role</literal> facts are synchronized with the user's authenticated roles at the beginning of every permission check. As a consequence, any <literal>Role</literal> object that is inserted into the working memory during the course of a permission check will be removed before the next permission check occurs, if the authenticated user is not actually a member of that role. Besides the <literal>PermissionCheck</literal> and <literal>Role</literal> facts, the working memory also contains the <literal>java.security.Principal</literal> object that was created as a result of the authentication process."
+msgstr "Accanto al fatto <literal>PermissionCheck</literal> c'è anche un fatto <literal>org.jboss.seam.security.Role</literal> per ogni ruolo di cui l'utente autenticato è membro. Questi fatti <literal>Role</literal> sono sincronizzati con i ruoli dell'utente autenticato all'inizio di ogni controllo di permesso. Di conseguenza qualsiasi oggetto <literal>Role</literal> che venisse inserito nella working memory nel corso del controllo di permesso sarebbe rimosso prima che il controllo di permesso successivo avvenga, a meno che l'utente autenticato non sia effettivamente membro di quel ruolo. Insieme ai fatti <literal>PermissionCheck</literal> e <literal>Role</literal> la working memory contiene anche l'oggetto <literal>java.security.Principal</literal> che era stato creato come risultato del processo di autentifica."
#. Tag: para
#: Security.xml:3037
#, no-c-format
-msgid ""
-"It is also possible to insert additional long-lived facts into the working "
-"memory by calling <literal>RuleBasedPermissionResolver.instance()."
-"getSecurityContext().insert()</literal>, passing the object as a parameter. "
-"The exception to this is <literal>Role</literal> objects, which as already "
-"discussed are synchronized at the start of each permission check."
-msgstr ""
-"E' anche possibile inserire ulteriori fatti nella working memory chiamando "
-"<literal>RuleBasedPermissionResolver.instance().getSecurityContext().insert()"
-"</literal>, passando l'oggetto come parametro. Fanno eccezione a questo gli "
-"oggetti <literal>Role</literal> che, come già detto, sono sincronizzati "
-"all'inizio di ciascun controllo di permesso."
+msgid "It is also possible to insert additional long-lived facts into the working memory by calling <literal>RuleBasedPermissionResolver.instance().getSecurityContext().insert()</literal>, passing the object as a parameter. The exception to this is <literal>Role</literal> objects, which as already discussed are synchronized at the start of each permission check."
+msgstr "E' anche possibile inserire ulteriori fatti nella working memory chiamando <literal>RuleBasedPermissionResolver.instance().getSecurityContext().insert()</literal>, passando l'oggetto come parametro. Fanno eccezione a questo gli oggetti <literal>Role</literal> che, come già detto, sono sincronizzati all'inizio di ciascun controllo di permesso."
#. Tag: para
#: Security.xml:3044
#, no-c-format
-msgid ""
-"Getting back to our simple example, we can also notice that the first line "
-"of our LHS is prefixed with <literal>c:</literal>. This is a variable "
-"binding, and is used to refer back to the object that is matched by the "
-"condition (in this case, the <literal>PermissionCheck</literal>). Moving on "
-"to the second line of our LHS, we see this:"
-msgstr ""
-"Tornando al nostro esempio, possiamo anche notare che la prima linea della "
-"nostra parte sinistra ha il prefisso <literal>c:</literal>. Questa è una "
-"dichiarazione di variabile ed è usata per fare riferimento all'oggetto "
-"rilevato dalla condizione (in questo caso il <literal>PermissionCheck</"
-"literal>). Passando alla seconda linea della nostra parte sinistra vediamo "
-"questo:"
+msgid "Getting back to our simple example, we can also notice that the first line of our LHS is prefixed with <literal>c:</literal>. This is a variable binding, and is used to refer back to the object that is matched by the condition (in this case, the <literal>PermissionCheck</literal>). Moving on to the second line of our LHS, we see this:"
+msgstr "Tornando al nostro esempio, possiamo anche notare che la prima linea della nostra parte sinistra ha il prefisso <literal>c:</literal>. Questa è una dichiarazione di variabile ed è usata per fare riferimento all'oggetto rilevato dalla condizione (in questo caso il <literal>PermissionCheck</literal>). Passando alla seconda linea della nostra parte sinistra vediamo questo:"
#. Tag: programlisting
#: Security.xml:3051
@@ -5746,32 +3933,14 @@
#. Tag: para
#: Security.xml:3053
#, no-c-format
-msgid ""
-"This condition simply states that there must be a <literal>Role</literal> "
-"object with a <literal>name</literal> of \"admin\" within the working "
-"memory. As already mentioned, user roles are inserted into the working "
-"memory at the beginning of each permission check. So, putting both "
-"conditions together, this rule is essentially saying \"I will fire if you "
-"are checking for the <literal>customer:delete</literal> permission and the "
-"user is a member of the <literal>admin</literal> role\"."
-msgstr ""
-"Questa condizione dichiara semplicemente che ci deve essere un oggetto "
-"<literal>Role</literal> con un <literal>name</literal> uguale ad \"admin\" "
-"nella working memory. Come già menzionato, i ruoli dell'utente sono inseriti "
-"nella working memory all'inizio di ogni controllo di permesso. Così, "
-"mettendo insieme entrambe le condizioni, questa regola in pratica dice \"mi "
-"attiverò quando ci sarà un controllo per il permesso <literal>customer:"
-"delete</literal> e l'utente è un membro del ruolo <literal>admin</literal>\"."
+msgid "This condition simply states that there must be a <literal>Role</literal> object with a <literal>name</literal> of \"admin\" within the working memory. As already mentioned, user roles are inserted into the working memory at the beginning of each permission check. So, putting both conditions together, this rule is essentially saying \"I will fire if you are checking for the <literal>customer:delete</literal> permission and the user is a member of the <literal>admin</literal> role\"."
+msgstr "Questa condizione dichiara semplicemente che ci deve essere un oggetto <literal>Role</literal> con un <literal>name</literal> uguale ad \"admin\" nella working memory. Come già menzionato, i ruoli dell'utente sono inseriti nella working memory all'inizio di ogni controllo di permesso. Così, mettendo insieme entrambe le condizioni, questa regola in pratica dice \"mi attiverò quando ci sarà un controllo per il permesso <literal>customer:delete</literal> e l'utente è un membro del ruolo <literal>admin</literal>\"."
#. Tag: para
#: Security.xml:3061
#, no-c-format
-msgid ""
-"So what is the consequence of the rule firing? Let's take a look at the RHS "
-"of the rule:"
-msgstr ""
-"Quindi qual è la conseguenza dell'attivazione della regola? Diamo "
-"un'occhiata alla parte destra della regola:"
+msgid "So what is the consequence of the rule firing? Let's take a look at the RHS of the rule:"
+msgstr "Quindi qual è la conseguenza dell'attivazione della regola? Diamo un'occhiata alla parte destra della regola:"
#. Tag: programlisting
#: Security.xml:3065
@@ -5782,31 +3951,8 @@
#. Tag: para
#: Security.xml:3067
#, no-c-format
-msgid ""
-"The RHS consists of Java code, and in this case is invoking the "
-"<literal>grant()</literal> method of the <literal>c</literal> object, which "
-"as already mentioned is a variable binding for the <literal>PermissionCheck</"
-"literal> object. Besides the <literal>name</literal> and <literal>action</"
-"literal> properties of the <literal>PermissionCheck</literal> object, there "
-"is also a <literal>granted</literal> property which is initially set to "
-"<literal>false</literal>. Calling <literal>grant()</literal> on a "
-"<literal>PermissionCheck</literal> sets the <literal>granted</literal> "
-"property to <literal>true</literal>, which means that the permission check "
-"was successful, allowing the user to carry out whatever action the "
-"permission check was intended for."
-msgstr ""
-"La parte destra è costituita da codice Java e, in questo caso, esso invoca "
-"il metodo <literal>grant()</literal> dell'oggetto <literal>c</literal> il "
-"quale, come già detto, è una variabile che rappresenta l'oggetto "
-"<literal>PermissionCheck</literal>. Insieme alle proprietà <literal>name</"
-"literal> e <literal>action</literal>, nell'oggetto <literal>PermissionCheck</"
-"literal> c'è anche una proprietà <literal>granted</literal> che inizialmente "
-"è impostata a <literal>false</literal>. Chiamando <literal>grant()</literal> "
-"su un <literal>PermissionCheck</literal> la proprietà <literal>granted</"
-"literal> viene impostata a <literal>true</literal>, il che significa che il "
-"controllo di permesso è andato a buon fine, consentendo all'utente di "
-"portare avanti qualsiasi azione per cui il controlo di permesso era stato "
-"inteso."
+msgid "The RHS consists of Java code, and in this case is invoking the <literal>grant()</literal> method of the <literal>c</literal> object, which as already mentioned is a variable binding for the <literal>PermissionCheck</literal> object. Besides the <literal>name</literal> and <literal>action</literal> properties of the <literal>PermissionCheck</literal> object, there is also a <literal>granted</literal> property which is initially set to <literal>false</literal>. Calling <literal>grant()</literal> on a <literal>PermissionCheck</literal> sets the <literal>granted</literal> property to <literal>true</literal>, which means that the permission check was successful, allowing the user to carry out whatever action the permission check was intended for."
+msgstr "La parte destra è costituita da codice Java e, in questo caso, esso invoca il metodo <literal>grant()</literal> dell'oggetto <literal>c</literal> il quale, come già detto, è una variabile che rappresenta l'oggetto <literal>PermissionCheck</literal>. Insieme alle proprietà <literal>name</literal> e <literal>action</literal>, nell'oggetto <literal>PermissionCheck</literal> c'è anche una proprietà <literal>granted</literal> che inizialmente è impostata a <literal>false</literal>. Chiamando <literal>grant()</literal> su un <literal>PermissionCheck</literal> la proprietà <literal>granted</literal> viene impostata a <literal>true</literal>, il che significa che il controllo di permesso è andato a buon fine, consentendo all'utente di portare avanti qualsiasi azione per cui il controlo di permesso era stato inteso."
#. Tag: title
#: Security.xml:3081
@@ -5817,24 +3963,8 @@
#. Tag: para
#: Security.xml:3083
#, no-c-format
-msgid ""
-"So far we have only seen permission checks for String-literal permission "
-"targets. It is of course also possible to write security rules for "
-"permission targets of more complex types. For example, let's say that you "
-"wish to write a security rule to allow your users to create blog comments. "
-"The following rule demonstrates how this may be expressed, by requiring the "
-"target of the permission check to be an instance of <literal>MemberBlog</"
-"literal>, and also requiring that the currently authenticated user is a "
-"member of the <literal>user</literal> role:"
-msgstr ""
-"Finora abbiamo visto solo controlli di permesso per obiettivi di tipo "
-"stringa. E' naturalmente possibile scrivere regole di sicurezza anche per "
-"obiettivi del permesso di tipo più complesso. Ad esempio, supponiamo che si "
-"voglia scrivere una regola di sicurezza che consenta agli utenti di creare "
-"un commento in un blog. La seguente regola mostra come questo possa essere "
-"espresso, richiedendo che l'obiettivo del controllo di permesso sia "
-"un'istanza di <literal>MemberBlog</literal> e anche che l'utente "
-"correntemente autenticato sia un membro del ruolo <literal>user</literal>:"
+msgid "So far we have only seen permission checks for String-literal permission targets. It is of course also possible to write security rules for permission targets of more complex types. For example, let's say that you wish to write a security rule to allow your users to create blog comments. The following rule demonstrates how this may be expressed, by requiring the target of the permission check to be an instance of <literal>MemberBlog</literal>, and also requiring that the currently authenticated user is a member of the <literal>user</literal> role:"
+msgstr "Finora abbiamo visto solo controlli di permesso per obiettivi di tipo stringa. E' naturalmente possibile scrivere regole di sicurezza anche per obiettivi del permesso di tipo più complesso. Ad esempio, supponiamo che si voglia scrivere una regola di sicurezza che consenta agli utenti di creare un commento in un blog. La seguente regola mostra come questo possa essere espresso, richiedendo che l'obiettivo del controllo di permesso sia un'istanza di <literal>MemberBlog</literal> e anche che l'utente correntemente autenticato sia un membro del ruolo <literal>user</literal>:"
#. Tag: programlisting
#: Security.xml:3092
@@ -5845,8 +3975,7 @@
" activation-group \"permissions\"\n"
"when\n"
" blog: MemberBlog()\n"
-" check: PermissionCheck(target == blog, action == \"create\", granted == "
-"false)\n"
+" check: PermissionCheck(target == blog, action == \"create\", granted == false)\n"
" Role(name == \"user\")\n"
"then\n"
" check.grant();\n"
@@ -5858,8 +3987,7 @@
" activation-group \"permissions\"\n"
"when\n"
" blog: MemberBlog()\n"
-" check: PermissionCheck(target == blog, action == \"create\", granted == "
-"false)\n"
+" check: PermissionCheck(target == blog, action == \"create\", granted == false)\n"
" Role(name == \"user\")\n"
"then\n"
" check.grant();\n"
@@ -5875,16 +4003,8 @@
#. Tag: para
#: Security.xml:3099
#, no-c-format
-msgid ""
-"It is possible to implement a wildcard permission check (which allows all "
-"actions for a given permission target), by omitting the <literal>action</"
-"literal> constraint for the <literal>PermissionCheck</literal> in your rule, "
-"like this:"
-msgstr ""
-"E' possibile realizzare dei controlli di permesso (che consentono l'accesso "
-"a tutte le funzioni per un determinato obiettivo) basati su wildcard "
-"omettendo il vincolo <literal>action</literal> per il "
-"<literal>PermissionCheck</literal> nella regola, in questo modo:"
+msgid "It is possible to implement a wildcard permission check (which allows all actions for a given permission target), by omitting the <literal>action</literal> constraint for the <literal>PermissionCheck</literal> in your rule, like this:"
+msgstr "E' possibile realizzare dei controlli di permesso (che consentono l'accesso a tutte le funzioni per un determinato obiettivo) basati su wildcard omettendo il vincolo <literal>action</literal> per il <literal>PermissionCheck</literal> nella regola, in questo modo:"
#. Tag: programlisting
#: Security.xml:3105
@@ -5911,14 +4031,8 @@
#. Tag: para
#: Security.xml:3107
#, no-c-format
-msgid ""
-"This rule allows users with the <literal>admin</literal> role to perform "
-"<emphasis>any</emphasis> action for any <literal>customer</literal> "
-"permission check."
-msgstr ""
-"Questa regola consente agli utenti con il ruolo <literal>admin</literal> di "
-"eseguire <emphasis>qualsiasi</emphasis> azione per qualsiasi controllo di "
-"permesso su <literal>customer</literal>."
+msgid "This rule allows users with the <literal>admin</literal> role to perform <emphasis>any</emphasis> action for any <literal>customer</literal> permission check."
+msgstr "Questa regola consente agli utenti con il ruolo <literal>admin</literal> di eseguire <emphasis>qualsiasi</emphasis> azione per qualsiasi controllo di permesso su <literal>customer</literal>."
#. Tag: title
#: Security.xml:3117
@@ -5929,46 +4043,20 @@
#. Tag: para
#: Security.xml:3119
#, no-c-format
-msgid ""
-"Another built-in permission resolver provided by Seam, "
-"<literal>PersistentPermissionResolver</literal> allows permissions to be "
-"loaded from persistent storage, such as a relational database. This "
-"permission resolver provides ACL style instance-based security, allowing for "
-"specific object permissions to be assigned to individual users and roles. It "
-"also allows for persistent, arbitrarily-named permission targets (not "
-"necessarily object/class based) to be assigned in the same way."
-msgstr ""
-"Un altro risolutore di permessi incluso in Seam, il "
-"<literal>PersistentPermissionResolver</literal> consente di caricare i "
-"permessi da un dispositivo di memorizzazione persistente, come una database "
-"relazionale. Questo risolutore di permessi fornisce una sicurezza orientata "
-"alle istanze in stile ACL (Access Control List), permettendo di assegnare "
-"specifici permessi sull'oggetto a utenti e ruoli. Allo stesso modo permette "
-"inoltre di assegnare in modo persistente permessi con un nome arbitrario "
-"(non necessariamente basato sull'oggetto o la classe). "
+msgid "Another built-in permission resolver provided by Seam, <literal>PersistentPermissionResolver</literal> allows permissions to be loaded from persistent storage, such as a relational database. This permission resolver provides ACL style instance-based security, allowing for specific object permissions to be assigned to individual users and roles. It also allows for persistent, arbitrarily-named permission targets (not necessarily object/class based) to be assigned in the same way."
+msgstr "Un altro risolutore di permessi incluso in Seam, il <literal>PersistentPermissionResolver</literal> consente di caricare i permessi da un dispositivo di memorizzazione persistente, come una database relazionale. Questo risolutore di permessi fornisce una sicurezza orientata alle istanze in stile ACL (Access Control List), permettendo di assegnare specifici permessi sull'oggetto a utenti e ruoli. Allo stesso modo permette inoltre di assegnare in modo persistente permessi con un nome arbitrario (non necessariamente basato sull'oggetto o la classe). "
#. Tag: para
#: Security.xml:3130
#, no-c-format
-msgid ""
-"Before it can be used, <literal>PersistentPermissionResolver</literal> must "
-"be configured with a valid <literal>PermissionStore</literal> in "
-"<literal>components.xml</literal>. If not configured, it will attempt to use "
-"the default permission store, <literal>JpaIdentityStore</literal> (see "
-"section further down for details). To use a permission store other than the "
-"default, configure the <literal>permission-store</literal> property as "
-"follows:"
+msgid "Before it can be used, <literal>PersistentPermissionResolver</literal> must be configured with a valid <literal>PermissionStore</literal> in <literal>components.xml</literal>. If not configured, it will attempt to use the default permission store, <literal>JpaIdentityStore</literal> (see section further down for details). To use a permission store other than the default, configure the <literal>permission-store</literal> property as follows:"
msgstr ""
#. Tag: programlisting
#: Security.xml:3138
#, no-c-format
-msgid ""
-"<![CDATA[ <security:persistent-permission-resolver permission-store=\"#"
-"{myCustomPermissionStore}\"/>]]>"
-msgstr ""
-"<![CDATA[ <security:persistent-permission-resolver permission-store=\"#"
-"{myCustomPermissionStore}\"/>]]>"
+msgid "<![CDATA[ <security:persistent-permission-resolver permission-store=\"#{myCustomPermissionStore}\"/>]]>"
+msgstr "<![CDATA[ <security:persistent-permission-resolver permission-store=\"#{myCustomPermissionStore}\"/>]]>"
#. Tag: title
#: Security.xml:3143
@@ -5979,14 +4067,7 @@
#. Tag: para
#: Security.xml:3145
#, no-c-format
-msgid ""
-"A permission store is required for <literal>PersistentPermissionResolver</"
-"literal> to connect to the backend storage where permissions are persisted. "
-"Seam provides one <literal>PermissionStore</literal> implementation out of "
-"the box, <literal>JpaPermissionStore</literal>, which is used to store "
-"permissions inside a relational database. It is possible to write your own "
-"permission store by implementing the <literal>PermissionStore</literal> "
-"interface, which defines the following methods:"
+msgid "A permission store is required for <literal>PersistentPermissionResolver</literal> to connect to the backend storage where permissions are persisted. Seam provides one <literal>PermissionStore</literal> implementation out of the box, <literal>JpaPermissionStore</literal>, which is used to store permissions inside a relational database. It is possible to write your own permission store by implementing the <literal>PermissionStore</literal> interface, which defines the following methods:"
msgstr ""
#. Tag: title
@@ -5996,14 +4077,18 @@
msgstr ""
#. Tag: literal
-#: Security.xml:3181 Security.xml:3200 Security.xml:3219 Security.xml:3802
+#: Security.xml:3181
+#: Security.xml:3200
+#: Security.xml:3219
+#: Security.xml:3802
#: Security.xml:3821
#, no-c-format
msgid "List<Permission>"
msgstr "List<Permission>"
#. Tag: literal
-#: Security.xml:3186 Security.xml:3826
+#: Security.xml:3186
+#: Security.xml:3826
#, no-c-format
msgid "listPermissions(Object target)"
msgstr "listPermissions(Object target)"
@@ -6011,14 +4096,12 @@
#. Tag: para
#: Security.xml:3190
#, no-c-format
-msgid ""
-"This method should return a <literal>List</literal> of <literal>Permission</"
-"literal> objects representing all the permissions granted for the specified "
-"target object."
+msgid "This method should return a <literal>List</literal> of <literal>Permission</literal> objects representing all the permissions granted for the specified target object."
msgstr ""
#. Tag: literal
-#: Security.xml:3205 Security.xml:3807
+#: Security.xml:3205
+#: Security.xml:3807
#, no-c-format
msgid "listPermissions(Object target, String action)"
msgstr "listPermissions(Object target, String action)"
@@ -6026,10 +4109,7 @@
#. Tag: para
#: Security.xml:3209
#, no-c-format
-msgid ""
-"This method should return a <literal>List</literal> of <literal>Permission</"
-"literal> objects representing all the permissions with the specified action, "
-"granted for the specified target object."
+msgid "This method should return a <literal>List</literal> of <literal>Permission</literal> objects representing all the permissions with the specified action, granted for the specified target object."
msgstr ""
#. Tag: literal
@@ -6041,10 +4121,7 @@
#. Tag: para
#: Security.xml:3228
#, no-c-format
-msgid ""
-"This method should return a <literal>List</literal> of <literal>Permission</"
-"literal> objects representing all the permissions with the specified action, "
-"granted for the specified set of target objects."
+msgid "This method should return a <literal>List</literal> of <literal>Permission</literal> objects representing all the permissions with the specified action, granted for the specified set of target objects."
msgstr ""
#. Tag: literal
@@ -6056,13 +4133,12 @@
#. Tag: para
#: Security.xml:3248
#, no-c-format
-msgid ""
-"This method should persist the specified <literal>Permission</literal> "
-"object to the backend storage, returning true if successful."
+msgid "This method should persist the specified <literal>Permission</literal> object to the backend storage, returning true if successful."
msgstr ""
#. Tag: literal
-#: Security.xml:3263 Security.xml:3864
+#: Security.xml:3263
+#: Security.xml:3864
#, no-c-format
msgid "grantPermissions(List<Permission> permissions)"
msgstr "grantPermissions(List<Permission> permissions)"
@@ -6070,14 +4146,12 @@
#. Tag: para
#: Security.xml:3267
#, no-c-format
-msgid ""
-"This method should persist all of the <literal>Permission</literal> objects "
-"contained in the specified <literal>List</literal>, returning true if "
-"successful."
+msgid "This method should persist all of the <literal>Permission</literal> objects contained in the specified <literal>List</literal>, returning true if successful."
msgstr ""
#. Tag: literal
-#: Security.xml:3282 Security.xml:3883
+#: Security.xml:3282
+#: Security.xml:3883
#, no-c-format
msgid "revokePermission(Permission permission)"
msgstr "revokePermission(Permission permission)"
@@ -6085,13 +4159,12 @@
#. Tag: para
#: Security.xml:3286
#, no-c-format
-msgid ""
-"This method should remove the specified <literal>Permission</literal> object "
-"from persistent storage."
+msgid "This method should remove the specified <literal>Permission</literal> object from persistent storage."
msgstr ""
#. Tag: literal
-#: Security.xml:3300 Security.xml:3902
+#: Security.xml:3300
+#: Security.xml:3902
#, no-c-format
msgid "revokePermissions(List<Permission> permissions)"
msgstr "revokePermissions(List<Permission> permissions)"
@@ -6099,19 +4172,19 @@
#. Tag: para
#: Security.xml:3304
#, no-c-format
-msgid ""
-"This method should remove all of the <literal>Permission</literal> objects "
-"in the specified list from persistent storage."
+msgid "This method should remove all of the <literal>Permission</literal> objects in the specified list from persistent storage."
msgstr ""
#. Tag: literal
-#: Security.xml:3314 Security.xml:3916
+#: Security.xml:3314
+#: Security.xml:3916
#, no-c-format
msgid "List<String>"
msgstr "List<String>"
#. Tag: literal
-#: Security.xml:3319 Security.xml:3921
+#: Security.xml:3319
+#: Security.xml:3921
#, no-c-format
msgid "listAvailableActions(Object target)"
msgstr "listAvailableActions(Object target)"
@@ -6119,11 +4192,7 @@
#. Tag: para
#: Security.xml:3323
#, no-c-format
-msgid ""
-"This method should return a list of all the available actions (as Strings) "
-"for the class of the specified target object. It is used in conjunction with "
-"permission management to build the user interface for granting specific "
-"class permissions (see section further down)."
+msgid "This method should return a list of all the available actions (as Strings) for the class of the specified target object. It is used in conjunction with permission management to build the user interface for granting specific class permissions (see section further down)."
msgstr ""
#. Tag: title
@@ -6135,63 +4204,41 @@
#. Tag: para
#: Security.xml:3339
#, no-c-format
-msgid ""
-"This is the default <literal>PermissionStore</literal> implementation (and "
-"the only one provided by Seam), which uses a relational database to store "
-"permissions. Before it can be used it must be configured with either one or "
-"two entity classes for storing user and role permissions. These entity "
-"classes must be annotated with a special set of security annotations to "
-"configure which properties of the entity correspond to various aspects of "
-"the permissions being stored."
+msgid "This is the default <literal>PermissionStore</literal> implementation (and the only one provided by Seam), which uses a relational database to store permissions. Before it can be used it must be configured with either one or two entity classes for storing user and role permissions. These entity classes must be annotated with a special set of security annotations to configure which properties of the entity correspond to various aspects of the permissions being stored."
msgstr ""
#. Tag: para
#: Security.xml:3347
#, no-c-format
-msgid ""
-"If you wish to use the same entity (i.e. a single database table) to store "
-"both user and role permissions, then only the <literal>user-permission-"
-"class</literal> property is required to be configured. If you wish to use "
-"separate tables for storing user and role permissions, then in addition to "
-"the <literal>user-permission-class</literal> property you must also "
-"configure the <literal>role-permission-class</literal> property."
+msgid "If you wish to use the same entity (i.e. a single database table) to store both user and role permissions, then only the <literal>user-permission-class</literal> property is required to be configured. If you wish to use separate tables for storing user and role permissions, then in addition to the <literal>user-permission-class</literal> property you must also configure the <literal>role-permission-class</literal> property."
msgstr ""
#. Tag: para
#: Security.xml:3354
#, no-c-format
-msgid ""
-"For example, to configure a single entity class to store both user and role "
-"permissions:"
+msgid "For example, to configure a single entity class to store both user and role permissions:"
msgstr ""
#. Tag: programlisting
#: Security.xml:3356
#, no-c-format
-msgid ""
-"<![CDATA[ <security:jpa-permission-store user-permission-class=\"com.acme."
-"model.AccountPermission\"/>]]>"
-msgstr ""
-"<![CDATA[ <security:jpa-permission-store user-permission-class=\"com.acme."
-"model.AccountPermission\"/>]]>"
+msgid "<![CDATA[ <security:jpa-permission-store user-permission-class=\"com.acme.model.AccountPermission\"/>]]>"
+msgstr "<![CDATA[ <security:jpa-permission-store user-permission-class=\"com.acme.model.AccountPermission\"/>]]>"
#. Tag: para
#: Security.xml:3358
#, no-c-format
-msgid ""
-"To configure separate entity classes for storing user and role permissions:"
+msgid "To configure separate entity classes for storing user and role permissions:"
msgstr ""
#. Tag: programlisting
#: Security.xml:3360
#, no-c-format
msgid ""
-"<![CDATA[ <security:jpa-permission-store user-permission-class=\"com.acme."
-"model.UserPermission\"\n"
+"<![CDATA[ <security:jpa-permission-store user-permission-class=\"com.acme.model.UserPermission\"\n"
" role-permission-class=\"com.acme.model.RolePermission\"/>]]>"
msgstr ""
-"<![CDATA[ <security:jpa-permission-store user-permission-class=\"com.acme."
-"model.UserPermission\"\n"
+"<![CDATA[ <security:jpa-permission-store user-permission-class=\"com.acme.model.UserPermission\"\n"
" role-permission-class=\"com.acme.model.RolePermission\"/>]]>"
#. Tag: title
@@ -6203,12 +4250,7 @@
#. Tag: para
#: Security.xml:3365
#, no-c-format
-msgid ""
-"As mentioned, the entity classes that contain the user and role permissions "
-"must be configured with a special set of annotations, contained within the "
-"<literal>org.jboss.seam.annotations.security.permission</literal> package. "
-"The following table lists each of these annotations along with a description "
-"of how they are used:"
+msgid "As mentioned, the entity classes that contain the user and role permissions must be configured with a special set of annotations, contained within the <literal>org.jboss.seam.annotations.security.permission</literal> package. The following table lists each of these annotations along with a description of how they are used:"
msgstr ""
#. Tag: title
@@ -6218,7 +4260,8 @@
msgstr ""
#. Tag: para
-#: Security.xml:3385 Security.xml:3548
+#: Security.xml:3385
+#: Security.xml:3548
#, no-c-format
msgid "Target"
msgstr "Target"
@@ -6230,7 +4273,10 @@
msgstr "@PermissionTarget"
#. Tag: literal
-#: Security.xml:3403 Security.xml:3422 Security.xml:3441 Security.xml:3460
+#: Security.xml:3403
+#: Security.xml:3422
+#: Security.xml:3441
+#: Security.xml:3460
#: Security.xml:3479
#, no-c-format
msgid "FIELD,METHOD"
@@ -6239,10 +4285,7 @@
#. Tag: para
#: Security.xml:3407
#, no-c-format
-msgid ""
-"This annotation identifies the property of the entity that will contain the "
-"permission target. The property should be of type <literal>java.lang.String</"
-"literal>."
+msgid "This annotation identifies the property of the entity that will contain the permission target. The property should be of type <literal>java.lang.String</literal>."
msgstr ""
#. Tag: literal
@@ -6254,10 +4297,7 @@
#. Tag: para
#: Security.xml:3426
#, no-c-format
-msgid ""
-"This annotation identifies the property of the entity that will contain the "
-"permission action. The property should be of type <literal>java.lang.String</"
-"literal>."
+msgid "This annotation identifies the property of the entity that will contain the permission action. The property should be of type <literal>java.lang.String</literal>."
msgstr ""
#. Tag: literal
@@ -6269,10 +4309,7 @@
#. Tag: para
#: Security.xml:3445
#, no-c-format
-msgid ""
-"This annotation identifies the property of the entity that will contain the "
-"recipient user for the permission. It should be of type <literal>java.lang."
-"String</literal> and contain the user's username."
+msgid "This annotation identifies the property of the entity that will contain the recipient user for the permission. It should be of type <literal>java.lang.String</literal> and contain the user's username."
msgstr ""
#. Tag: literal
@@ -6284,10 +4321,7 @@
#. Tag: para
#: Security.xml:3464
#, no-c-format
-msgid ""
-"This annotation identifies the property of the entity that will contain the "
-"recipient role for the permission. It should be of type <literal>java.lang."
-"String</literal> and contain the role name."
+msgid "This annotation identifies the property of the entity that will contain the recipient role for the permission. It should be of type <literal>java.lang.String</literal> and contain the role name."
msgstr ""
#. Tag: literal
@@ -6299,27 +4333,14 @@
#. Tag: para
#: Security.xml:3483
#, no-c-format
-msgid ""
-"This annotation should be used when the same entity/table is used to store "
-"both user and role permissions. It identifies the property of the entity "
-"that is used to discriminate between user and role permissions. By default, "
-"if the column value contains the string literal <literal>user</literal>, "
-"then the record will be treated as a user permission. If it contains the "
-"string literal <literal>role</literal>, then it will be treated as a role "
-"permission. It is also possible to override these defaults by specifying the "
-"<literal>userValue</literal> and <literal>roleValue</literal> properties "
-"within the annotation. For example, to use <literal>u</literal> and "
-"<literal>r</literal> instead of <literal>user</literal> and <literal>role</"
-"literal>, the annotation would be written like this:"
+msgid "This annotation should be used when the same entity/table is used to store both user and role permissions. It identifies the property of the entity that is used to discriminate between user and role permissions. By default, if the column value contains the string literal <literal>user</literal>, then the record will be treated as a user permission. If it contains the string literal <literal>role</literal>, then it will be treated as a role permission. It is also possible to override these defaults by specifying the <literal>userValue</literal> and <literal>roleValue</literal> properties within the annotation. For example, to use <literal>u</literal> and <literal>r</literal> instead of <literal>user</literal> and <literal>role</literal>, the annotation would be written like this:"
msgstr ""
#. Tag: programlisting
#: Security.xml:3493
#, no-c-format
-msgid ""
-"<![CDATA[ @PermissionDiscriminator(userValue = \"u\", roleValue = \"r\")]]>"
-msgstr ""
-"<![CDATA[ @PermissionDiscriminator(userValue = \"u\", roleValue = \"r\")]]>"
+msgid "<![CDATA[ @PermissionDiscriminator(userValue = \"u\", roleValue = \"r\")]]>"
+msgstr "<![CDATA[ @PermissionDiscriminator(userValue = \"u\", roleValue = \"r\")]]>"
#. Tag: title
#: Security.xml:3504
@@ -6330,10 +4351,7 @@
#. Tag: para
#: Security.xml:3506
#, no-c-format
-msgid ""
-"Here is an example of an entity class that is used to store both user and "
-"role permissions. The following class can be found inside the SeamSpace "
-"example:"
+msgid "Here is an example of an entity class that is used to store both user and role permissions. The following class can be found inside the SeamSpace example:"
msgstr ""
#. Tag: programlisting
@@ -6455,18 +4473,7 @@
#. Tag: para
#: Security.xml:3513
#, no-c-format
-msgid ""
-"As can be seen in the above example, the <literal>getDiscriminator()</"
-"literal> method has been annotated with the "
-"<literal>@PermissionDiscriminator</literal> annotation, to allow "
-"<literal>JpaPermissionStore</literal> to determine which records represent "
-"user permissions and which represent role permissions. In addition, it can "
-"also be seen that the <literal>getRecipient()</literal> method is annotated "
-"with both <literal>@PermissionUser</literal> and <literal>@PermissionRole</"
-"literal> annotations. This is perfectly valid, and simply means that the "
-"<literal>recipient</literal> property of the entity will either contain the "
-"name of the user or the name of the role, depending on the value of the "
-"<literal>discriminator</literal> property."
+msgid "As can be seen in the above example, the <literal>getDiscriminator()</literal> method has been annotated with the <literal>@PermissionDiscriminator</literal> annotation, to allow <literal>JpaPermissionStore</literal> to determine which records represent user permissions and which represent role permissions. In addition, it can also be seen that the <literal>getRecipient()</literal> method is annotated with both <literal>@PermissionUser</literal> and <literal>@PermissionRole</literal> annotations. This is perfectly valid, and simply means that the <literal>recipient</literal> property of the entity will either contain the name of the user or the name of the role, depending on the value of the <literal>discriminator</literal> property."
msgstr ""
#. Tag: title
@@ -6478,11 +4485,7 @@
#. Tag: para
#: Security.xml:3528
#, no-c-format
-msgid ""
-"A further set of class-specific annotations can be used to configure a "
-"specific set of allowable permissions for a target class. These permissions "
-"can be found in the <literal>org.jboss.seam.annotation.security.permission</"
-"literal> package:"
+msgid "A further set of class-specific annotations can be used to configure a specific set of allowable permissions for a target class. These permissions can be found in the <literal>org.jboss.seam.annotation.security.permission</literal> package:"
msgstr ""
#. Tag: title
@@ -6498,7 +4501,8 @@
msgstr "@Permissions"
#. Tag: literal
-#: Security.xml:3566 Security.xml:3584
+#: Security.xml:3566
+#: Security.xml:3584
#, no-c-format
msgid "TYPE"
msgstr "TYPE"
@@ -6506,9 +4510,7 @@
#. Tag: para
#: Security.xml:3570
#, no-c-format
-msgid ""
-"A container annotation, this annotation may contain an array of "
-"<literal>@Permission</literal> annotations."
+msgid "A container annotation, this annotation may contain an array of <literal>@Permission</literal> annotations."
msgstr ""
#. Tag: literal
@@ -6520,20 +4522,13 @@
#. Tag: para
#: Security.xml:3588
#, no-c-format
-msgid ""
-"This annotation defines a single allowable permission action for the target "
-"class. Its <literal>action</literal> property must be specified, and an "
-"optional <literal>mask</literal> property may also be specified if "
-"permission actions are to be persisted as bitmasked values (see next "
-"section)."
+msgid "This annotation defines a single allowable permission action for the target class. Its <literal>action</literal> property must be specified, and an optional <literal>mask</literal> property may also be specified if permission actions are to be persisted as bitmasked values (see next section)."
msgstr ""
#. Tag: para
#: Security.xml:3600
#, no-c-format
-msgid ""
-"Here's an example of the above annotations in action. The following class "
-"can also be found in the SeamSpace example:"
+msgid "Here's an example of the above annotations in action. The following class can also be found in the SeamSpace example:"
msgstr ""
#. Tag: programlisting
@@ -6557,10 +4552,7 @@
#. Tag: para
#: Security.xml:3606
#, no-c-format
-msgid ""
-"This example demonstrates how two allowable permission actions, "
-"<literal>view</literal> and <literal>comment</literal> can be declared for "
-"the entity class <literal>MemberImage</literal>."
+msgid "This example demonstrates how two allowable permission actions, <literal>view</literal> and <literal>comment</literal> can be declared for the entity class <literal>MemberImage</literal>."
msgstr ""
#. Tag: title
@@ -6572,26 +4564,13 @@
#. Tag: para
#: Security.xml:3616
#, no-c-format
-msgid ""
-"By default, multiple permissions for the same target object and recipient "
-"will be persisted as a single database record, with the <literal>action</"
-"literal> property/column containing a comma-separated list of the granted "
-"actions. To reduce the amount of physical storage required to persist a "
-"large number of permissions, it is possible to use a bitmasked integer value "
-"(instead of a comma-separated list) to store the list of permission actions."
+msgid "By default, multiple permissions for the same target object and recipient will be persisted as a single database record, with the <literal>action</literal> property/column containing a comma-separated list of the granted actions. To reduce the amount of physical storage required to persist a large number of permissions, it is possible to use a bitmasked integer value (instead of a comma-separated list) to store the list of permission actions."
msgstr ""
#. Tag: para
#: Security.xml:3623
#, no-c-format
-msgid ""
-"For example, if recipient \"Bob\" is granted both the <literal>view</"
-"literal> and <literal>comment</literal> permissions for a particular "
-"<literal>MemberImage</literal> (an entity bean) instance, then by default "
-"the <literal>action</literal> property of the permission entity will contain "
-"\"<literal>view,comment</literal>\", representing the two granted permission "
-"actions. Alternatively, if using bitmasked values for the permission "
-"actions, as defined like so:"
+msgid "For example, if recipient \"Bob\" is granted both the <literal>view</literal> and <literal>comment</literal> permissions for a particular <literal>MemberImage</literal> (an entity bean) instance, then by default the <literal>action</literal> property of the permission entity will contain \"<literal>view,comment</literal>\", representing the two granted permission actions. Alternatively, if using bitmasked values for the permission actions, as defined like so:"
msgstr ""
#. Tag: programlisting
@@ -6615,19 +4594,13 @@
#. Tag: para
#: Security.xml:3632
#, no-c-format
-msgid ""
-"The <literal>action</literal> property will instead simply contain \"3"
-"\" (with both the 1 bit and 2 bit switched on). Obviously for a large number "
-"of allowable actions for any particular target class, the storage required "
-"for the permission records is greatly reduced by using bitmasked actions."
+msgid "The <literal>action</literal> property will instead simply contain \"3\" (with both the 1 bit and 2 bit switched on). Obviously for a large number of allowable actions for any particular target class, the storage required for the permission records is greatly reduced by using bitmasked actions."
msgstr ""
#. Tag: para
#: Security.xml:3638
#, no-c-format
-msgid ""
-"Obviously, it is very important that the <literal>mask</literal> values "
-"specified are powers of 2."
+msgid "Obviously, it is very important that the <literal>mask</literal> values specified are powers of 2."
msgstr ""
#. Tag: title
@@ -6639,23 +4612,13 @@
#. Tag: para
#: Security.xml:3646
#, no-c-format
-msgid ""
-"When storing or looking up permissions, <literal>JpaPermissionStore</"
-"literal> must be able to uniquely identify specific object instances to "
-"effectively operate on its permissions. To achieve this, an "
-"<emphasis>identifier strategy</emphasis> may be assigned to each target "
-"class for the generation of unique identifier values. Each identifier "
-"strategy implementation knows how to generate unique identifiers for a "
-"particular type of class, and it is a simple matter to create new identifier "
-"strategies."
+msgid "When storing or looking up permissions, <literal>JpaPermissionStore</literal> must be able to uniquely identify specific object instances to effectively operate on its permissions. To achieve this, an <emphasis>identifier strategy</emphasis> may be assigned to each target class for the generation of unique identifier values. Each identifier strategy implementation knows how to generate unique identifiers for a particular type of class, and it is a simple matter to create new identifier strategies."
msgstr ""
#. Tag: para
#: Security.xml:3654
#, no-c-format
-msgid ""
-"The <literal>IdentifierStrategy</literal> interface is very simple, "
-"declaring only two methods:"
+msgid "The <literal>IdentifierStrategy</literal> interface is very simple, declaring only two methods:"
msgstr ""
#. Tag: programlisting
@@ -6675,34 +4638,19 @@
#. Tag: para
#: Security.xml:3660
#, no-c-format
-msgid ""
-"The first method, <literal>canIdentify()</literal> simply returns "
-"<literal>true</literal> if the identifier strategy is capable of generating "
-"a unique identifier for the specified target class. The second method, "
-"<literal>getIdentifier()</literal> returns the unique identifier value for "
-"the specified target object."
+msgid "The first method, <literal>canIdentify()</literal> simply returns <literal>true</literal> if the identifier strategy is capable of generating a unique identifier for the specified target class. The second method, <literal>getIdentifier()</literal> returns the unique identifier value for the specified target object."
msgstr ""
#. Tag: para
#: Security.xml:3666
#, no-c-format
-msgid ""
-"Seam provides two <literal>IdentifierStrategy</literal> implementations, "
-"<literal>ClassIdentifierStrategy</literal> and "
-"<literal>EntityIdentifierStrategy</literal> (see next sections for details)."
+msgid "Seam provides two <literal>IdentifierStrategy</literal> implementations, <literal>ClassIdentifierStrategy</literal> and <literal>EntityIdentifierStrategy</literal> (see next sections for details)."
msgstr ""
#. Tag: para
#: Security.xml:3671
#, no-c-format
-msgid ""
-"To explicitly configure a specific identifier strategy to use for a "
-"particular class, it should be annotated with <literal>org.jboss.seam."
-"annotations.security.permission.Identifier</literal>, and the value should "
-"be set to a concrete implementation of the <literal>IdentifierStrategy</"
-"literal> interface. An optional <literal>name</literal> property can also be "
-"specified, the effect of which is dependent upon the actual "
-"<literal>IdentifierStrategy</literal> implementation used."
+msgid "To explicitly configure a specific identifier strategy to use for a particular class, it should be annotated with <literal>org.jboss.seam.annotations.security.permission.Identifier</literal>, and the value should be set to a concrete implementation of the <literal>IdentifierStrategy</literal> interface. An optional <literal>name</literal> property can also be specified, the effect of which is dependent upon the actual <literal>IdentifierStrategy</literal> implementation used."
msgstr ""
#. Tag: title
@@ -6714,15 +4662,7 @@
#. Tag: para
#: Security.xml:3683
#, no-c-format
-msgid ""
-"This identifier strategy is used to generate unique identifiers for classes, "
-"and will use the value of the <literal>name</literal> (if specified) in the "
-"<literal>@Identifier</literal> annotation. If there is no <literal>name</"
-"literal> property provided, then it will attempt to use the component name "
-"of the class (if the class is a Seam component), or as a last resort it will "
-"create an identifier based on the name of the class (excluding the package "
-"name). For example, the identifier for the following class will be "
-"\"<literal>customer</literal>\":"
+msgid "This identifier strategy is used to generate unique identifiers for classes, and will use the value of the <literal>name</literal> (if specified) in the <literal>@Identifier</literal> annotation. If there is no <literal>name</literal> property provided, then it will attempt to use the component name of the class (if the class is a Seam component), or as a last resort it will create an identifier based on the name of the class (excluding the package name). For example, the identifier for the following class will be \"<literal>customer</literal>\":"
msgstr ""
#. Tag: programlisting
@@ -6738,9 +4678,7 @@
#. Tag: para
#: Security.xml:3694
#, no-c-format
-msgid ""
-"The identifier for the following class will be \"<literal>customerAction</"
-"literal>\":"
+msgid "The identifier for the following class will be \"<literal>customerAction</literal>\":"
msgstr ""
#. Tag: programlisting
@@ -6756,9 +4694,7 @@
#. Tag: para
#: Security.xml:3700
#, no-c-format
-msgid ""
-"Finally, the identifier for the following class will be \"<literal>Customer</"
-"literal>\":"
+msgid "Finally, the identifier for the following class will be \"<literal>Customer</literal>\":"
msgstr ""
#. Tag: programlisting
@@ -6776,18 +4712,7 @@
#. Tag: para
#: Security.xml:3711
#, no-c-format
-msgid ""
-"This identifier strategy is used to generate unique identifiers for entity "
-"beans. It does so by concatenating the entity name (or otherwise configured "
-"name) with a string representation of the primary key value of the entity. "
-"The rules for generating the name section of the identifier are similar to "
-"<literal>ClassIdentifierStrategy</literal>. The primary key value (i.e. the "
-"<emphasis>id</emphasis> of the entity) is obtained using the "
-"<literal>PersistenceProvider</literal> component, which is able to correctly "
-"determine the value regardless of which persistence implementation is used "
-"within the Seam application. For entities not annotated with "
-"<literal>@Entity</literal>, it is necessary to explicitly configure the "
-"identifier strategy on the entity class itself, for example:"
+msgid "This identifier strategy is used to generate unique identifiers for entity beans. It does so by concatenating the entity name (or otherwise configured name) with a string representation of the primary key value of the entity. The rules for generating the name section of the identifier are similar to <literal>ClassIdentifierStrategy</literal>. The primary key value (i.e. the <emphasis>id</emphasis> of the entity) is obtained using the <literal>PersistenceProvider</literal> component, which is able to correctly determine the value regardless of which persistence implementation is used within the Seam application. For entities not annotated with <literal>@Entity</literal>, it is necessary to explicitly configure the identifier strategy on the entity class itself, for example:"
msgstr ""
#. Tag: programlisting
@@ -6803,9 +4728,7 @@
#. Tag: para
#: Security.xml:3724
#, no-c-format
-msgid ""
-"For an example of the type of identifier values generated, assume we have "
-"the following entity class:"
+msgid "For an example of the type of identifier values generated, assume we have the following entity class:"
msgstr ""
#. Tag: programlisting
@@ -6823,8 +4746,7 @@
" public void setId(Integer id) { this.id = id; }\n"
" \n"
" public String getFirstName() { return firstName; }\n"
-" public void setFirstName(String firstName) { this.firstName = "
-"firstName; }\n"
+" public void setFirstName(String firstName) { this.firstName = firstName; }\n"
" \n"
" public String getLastName() { return lastName; }\n"
" public void setLastName(String lastName) { this.lastName = lastName; }\n"
@@ -6841,8 +4763,7 @@
" public void setId(Integer id) { this.id = id; }\n"
" \n"
" public String getFirstName() { return firstName; }\n"
-" public void setFirstName(String firstName) { this.firstName = "
-"firstName; }\n"
+" public void setFirstName(String firstName) { this.firstName = firstName; }\n"
" \n"
" public String getLastName() { return lastName; }\n"
" public void setLastName(String lastName) { this.lastName = lastName; }\n"
@@ -6851,11 +4772,7 @@
#. Tag: para
#: Security.xml:3730
#, no-c-format
-msgid ""
-"For a <literal>Customer</literal> instance with an <literal>id</literal> "
-"value of <literal>1</literal>, the value of the identifier would be "
-"\"<literal>Customer:1</literal>\". If the entity class is annotated with an "
-"explicit identifier name, like so:"
+msgid "For a <literal>Customer</literal> instance with an <literal>id</literal> value of <literal>1</literal>, the value of the identifier would be \"<literal>Customer:1</literal>\". If the entity class is annotated with an explicit identifier name, like so:"
msgstr ""
#. Tag: programlisting
@@ -6873,10 +4790,7 @@
#. Tag: para
#: Security.xml:3738
#, no-c-format
-msgid ""
-"Then a <literal>Customer</literal> with an <literal>id</literal> value of "
-"<literal>123</literal> would have an identifier value of "
-"\"<literal>cust:123</literal>\"."
+msgid "Then a <literal>Customer</literal> with an <literal>id</literal> value of <literal>123</literal> would have an identifier value of \"<literal>cust:123</literal>\"."
msgstr ""
#. Tag: title
@@ -6888,11 +4802,7 @@
#. Tag: para
#: Security.xml:3753
#, no-c-format
-msgid ""
-"In much the same way that Seam Security provides an Identity Management API "
-"for the management of users and roles, it also provides a Permissions "
-"Management API for the management of persistent user permissions, via the "
-"<literal>PermissionManager</literal> component."
+msgid "In much the same way that Seam Security provides an Identity Management API for the management of users and roles, it also provides a Permissions Management API for the management of persistent user permissions, via the <literal>PermissionManager</literal> component."
msgstr ""
#. Tag: title
@@ -6904,14 +4814,7 @@
#. Tag: para
#: Security.xml:3762
#, no-c-format
-msgid ""
-"The <literal>PermissionManager</literal> component is an application-scoped "
-"Seam component that provides a number of methods for managing permissions. "
-"Before it can be used, it must be configured with a permission store "
-"(although by default it will attempt to use <literal>JpaPermissionStore</"
-"literal> if it is available). To explicitly configure a custom permission "
-"store, specify the <literal>permission-store</literal> property in "
-"components.xml:"
+msgid "The <literal>PermissionManager</literal> component is an application-scoped Seam component that provides a number of methods for managing permissions. Before it can be used, it must be configured with a permission store (although by default it will attempt to use <literal>JpaPermissionStore</literal> if it is available). To explicitly configure a custom permission store, specify the <literal>permission-store</literal> property in components.xml:"
msgstr ""
#. Tag: programlisting
@@ -6919,21 +4822,17 @@
#, no-c-format
msgid ""
"<![CDATA[\n"
-"<security:permission-manager permission-store=\"#{ldapPermissionStore}\"/"
-"> \n"
+"<security:permission-manager permission-store=\"#{ldapPermissionStore}\"/> \n"
" ]]>"
msgstr ""
"<![CDATA[\n"
-"<security:permission-manager permission-store=\"#{ldapPermissionStore}\"/"
-"> \n"
+"<security:permission-manager permission-store=\"#{ldapPermissionStore}\"/> \n"
" ]]>"
#. Tag: para
#: Security.xml:3771
#, no-c-format
-msgid ""
-"The following table describes each of the available methods provided by "
-"<literal>PermissionManager</literal>:"
+msgid "The following table describes each of the available methods provided by <literal>PermissionManager</literal>:"
msgstr ""
#. Tag: title
@@ -6943,11 +4842,10 @@
msgstr ""
#. Tag: para
-#: Security.xml:3811 Security.xml:3830
+#: Security.xml:3811
+#: Security.xml:3830
#, no-c-format
-msgid ""
-"Returns a list of <literal>Permission</literal> objects representing all of "
-"the permissions that have been granted for the specified target and action."
+msgid "Returns a list of <literal>Permission</literal> objects representing all of the permissions that have been granted for the specified target and action."
msgstr ""
#. Tag: literal
@@ -6959,42 +4857,31 @@
#. Tag: para
#: Security.xml:3849
#, no-c-format
-msgid ""
-"Persists (grants) the specified <literal>Permission</literal> to the backend "
-"permission store. Returns true if the operation was successful."
+msgid "Persists (grants) the specified <literal>Permission</literal> to the backend permission store. Returns true if the operation was successful."
msgstr ""
#. Tag: para
#: Security.xml:3868
#, no-c-format
-msgid ""
-"Persists (grants) the specified list of <literal>Permission</literal>s to "
-"the backend permission store. Returns true if the operation was successful."
+msgid "Persists (grants) the specified list of <literal>Permission</literal>s to the backend permission store. Returns true if the operation was successful."
msgstr ""
#. Tag: para
#: Security.xml:3887
#, no-c-format
-msgid ""
-"Removes (revokes) the specified <literal>Permission</literal> from the "
-"backend permission store. Returns true if the operation was successful."
+msgid "Removes (revokes) the specified <literal>Permission</literal> from the backend permission store. Returns true if the operation was successful."
msgstr ""
#. Tag: para
#: Security.xml:3906
#, no-c-format
-msgid ""
-"Removes (revokes) the specified list of <literal>Permission</literal>s from "
-"the backend permission store. Returns true if the operation was successful."
+msgid "Removes (revokes) the specified list of <literal>Permission</literal>s from the backend permission store. Returns true if the operation was successful."
msgstr ""
#. Tag: para
#: Security.xml:3925
#, no-c-format
-msgid ""
-"Returns a list of the available actions for the specified target object. The "
-"actions that this method returns are dependent on the <literal>@Permission</"
-"literal> annotations configured on the target object's class."
+msgid "Returns a list of the available actions for the specified target object. The actions that this method returns are dependent on the <literal>@Permission</literal> annotations configured on the target object's class."
msgstr ""
#. Tag: title
@@ -7006,11 +4893,7 @@
#. Tag: para
#: Security.xml:3942
#, no-c-format
-msgid ""
-"Invoking the methods of <literal>PermissionManager</literal> requires that "
-"the currently-authenticated user has the appropriate authorization to "
-"perform that management operation. The following table lists the required "
-"permissions that the current user must have."
+msgid "Invoking the methods of <literal>PermissionManager</literal> requires that the currently-authenticated user has the appropriate authorization to perform that management operation. The following table lists the required permissions that the current user must have."
msgstr ""
#. Tag: title
@@ -7038,7 +4921,8 @@
msgstr "seam.read-permissions"
#. Tag: literal
-#: Security.xml:3991 Security.xml:4011
+#: Security.xml:3991
+#: Security.xml:4011
#, no-c-format
msgid "grantPermission()"
msgstr "grantPermission()"
@@ -7046,20 +4930,20 @@
#. Tag: para
#: Security.xml:3995
#, no-c-format
-msgid ""
-"The target of the specified <literal>Permission</literal>, or each of the "
-"targets for the specified list of <literal>Permission</literal>s (depending "
-"on which method is called)."
+msgid "The target of the specified <literal>Permission</literal>, or each of the targets for the specified list of <literal>Permission</literal>s (depending on which method is called)."
msgstr ""
#. Tag: literal
-#: Security.xml:4003 Security.xml:4021 Security.xml:4039
+#: Security.xml:4003
+#: Security.xml:4021
+#: Security.xml:4039
#, no-c-format
msgid "seam.grant-permission"
msgstr "seam.grant-permission"
#. Tag: para
-#: Security.xml:4015 Security.xml:4051
+#: Security.xml:4015
+#: Security.xml:4051
#, no-c-format
msgid "The target of the specified <literal>Permission</literal>."
msgstr ""
@@ -7071,10 +4955,10 @@
msgstr "grantPermissions()"
#. Tag: para
-#: Security.xml:4033 Security.xml:4069
+#: Security.xml:4033
+#: Security.xml:4069
#, no-c-format
-msgid ""
-"Each of the targets of the specified list of <literal>Permission</literal>s."
+msgid "Each of the targets of the specified list of <literal>Permission</literal>s."
msgstr ""
#. Tag: literal
@@ -7084,7 +4968,8 @@
msgstr "revokePermission()"
#. Tag: literal
-#: Security.xml:4057 Security.xml:4075
+#: Security.xml:4057
+#: Security.xml:4075
#, no-c-format
msgid "seam.revoke-permission"
msgstr "seam.revoke-permission"
@@ -7104,12 +4989,7 @@
#. Tag: para
#: Security.xml:4090
#, no-c-format
-msgid ""
-"Seam includes basic support for serving sensitive pages via the HTTPS "
-"protocol. This is easily configured by specifying a <literal>scheme</"
-"literal> for the page in <literal>pages.xml</literal>. The following example "
-"shows how the view <literal>/login.xhtml</literal> is configured to use "
-"HTTPS:"
+msgid "Seam includes basic support for serving sensitive pages via the HTTPS protocol. This is easily configured by specifying a <literal>scheme</literal> for the page in <literal>pages.xml</literal>. The following example shows how the view <literal>/login.xhtml</literal> is configured to use HTTPS:"
msgstr ""
#. Tag: programlisting
@@ -7121,13 +5001,7 @@
#. Tag: para
#: Security.xml:4099
#, no-c-format
-msgid ""
-"This configuration is automatically extended to both <literal>s:link</"
-"literal> and <literal>s:button</literal> JSF controls, which (when "
-"specifying the <literal>view</literal>) will also render the link using the "
-"correct protocol. Based on the previous example, the following link will use "
-"the HTTPS protocol because <literal>/login.xhtml</literal> is configured to "
-"use it:"
+msgid "This configuration is automatically extended to both <literal>s:link</literal> and <literal>s:button</literal> JSF controls, which (when specifying the <literal>view</literal>) will also render the link using the correct protocol. Based on the previous example, the following link will use the HTTPS protocol because <literal>/login.xhtml</literal> is configured to use it:"
msgstr ""
#. Tag: programlisting
@@ -7139,26 +5013,13 @@
#. Tag: para
#: Security.xml:4108
#, no-c-format
-msgid ""
-"Browsing directly to a view when using the <emphasis>incorrect</emphasis> "
-"protocol will cause a redirect to the same view using the <emphasis>correct</"
-"emphasis> protocol. For example, browsing to a page that has <literal>scheme="
-"\"https\"</literal> using HTTP will cause a redirect to the same page using "
-"HTTPS."
+msgid "Browsing directly to a view when using the <emphasis>incorrect</emphasis> protocol will cause a redirect to the same view using the <emphasis>correct</emphasis> protocol. For example, browsing to a page that has <literal>scheme=\"https\"</literal> using HTTP will cause a redirect to the same page using HTTPS."
msgstr ""
#. Tag: para
#: Security.xml:4115
#, no-c-format
-msgid ""
-"It is also possible to configure a <emphasis>default scheme</emphasis> for "
-"all pages. This is useful if you wish to use HTTPS for a only few pages. If "
-"no default scheme is specified then the normal behavior is to continue use "
-"the current scheme. So once the user accessed a page that required HTTPS, "
-"then HTTPS would continue to be used after the user navigated away to other "
-"non-HTTPS pages. (While this is good for security, it is not so great for "
-"performance!). To define HTTP as the default <literal>scheme</literal>, add "
-"this line to <literal>pages.xml</literal>:"
+msgid "It is also possible to configure a <emphasis>default scheme</emphasis> for all pages. This is useful if you wish to use HTTPS for a only few pages. If no default scheme is specified then the normal behavior is to continue use the current scheme. So once the user accessed a page that required HTTPS, then HTTPS would continue to be used after the user navigated away to other non-HTTPS pages. (While this is good for security, it is not so great for performance!). To define HTTP as the default <literal>scheme</literal>, add this line to <literal>pages.xml</literal>:"
msgstr ""
#. Tag: programlisting
@@ -7170,18 +5031,13 @@
#. Tag: para
#: Security.xml:4126
#, no-c-format
-msgid ""
-"Of course, if <emphasis>none</emphasis> of the pages in your application use "
-"HTTPS then it is not required to specify a default scheme."
+msgid "Of course, if <emphasis>none</emphasis> of the pages in your application use HTTPS then it is not required to specify a default scheme."
msgstr ""
#. Tag: para
#: Security.xml:4131
#, no-c-format
-msgid ""
-"You may configure Seam to automatically invalidate the current HTTP session "
-"each time the scheme changes. Just add this line to <literal>components.xml</"
-"literal>:"
+msgid "You may configure Seam to automatically invalidate the current HTTP session each time the scheme changes. Just add this line to <literal>components.xml</literal>:"
msgstr ""
#. Tag: programlisting
@@ -7193,10 +5049,7 @@
#. Tag: para
#: Security.xml:4138
#, no-c-format
-msgid ""
-"This option helps make your system less vulnerable to sniffing of the "
-"session id or leakage of sensitive data from pages using HTTPS to other "
-"pages using HTTP."
+msgid "This option helps make your system less vulnerable to sniffing of the session id or leakage of sensitive data from pages using HTTPS to other pages using HTTP."
msgstr ""
#. Tag: title
@@ -7208,11 +5061,7 @@
#. Tag: para
#: Security.xml:4146
#, no-c-format
-msgid ""
-"If you wish to configure the HTTP and HTTPS ports manually, they may be "
-"configured in <literal>pages.xml</literal> by specifying the <literal>http-"
-"port</literal> and <literal>https-port</literal> attributes on the "
-"<literal>pages</literal> element:"
+msgid "If you wish to configure the HTTP and HTTPS ports manually, they may be configured in <literal>pages.xml</literal> by specifying the <literal>http-port</literal> and <literal>https-port</literal> attributes on the <literal>pages</literal> element:"
msgstr ""
#. Tag: programlisting
@@ -7222,8 +5071,7 @@
"<![CDATA[\n"
"<pages xmlns=\"http://jboss.com/products/seam/pages\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://jboss.com/products/seam/pages http://"
-"jboss.com/products/seam/pages-2.1.xsd\"\n"
+" xsi:schemaLocation=\"http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.1.xsd\"\n"
" no-conversation-view-id=\"/home.xhtml\"\n"
" login-view-id=\"/login.xhtml\"\n"
" http-port=\"8080\"\n"
@@ -7233,8 +5081,7 @@
"<![CDATA[\n"
"<pages xmlns=\"http://jboss.com/products/seam/pages\"\n"
" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n"
-" xsi:schemaLocation=\"http://jboss.com/products/seam/pages http://"
-"jboss.com/products/seam/pages-2.1.xsd\"\n"
+" xsi:schemaLocation=\"http://jboss.com/products/seam/pages http://jboss.com/products/seam/pages-2.1.xsd\"\n"
" no-conversation-view-id=\"/home.xhtml\"\n"
" login-view-id=\"/login.xhtml\"\n"
" http-port=\"8080\"\n"
@@ -7250,13 +5097,7 @@
#. Tag: para
#: Security.xml:4160
#, no-c-format
-msgid ""
-"Though strictly not part of the security API, Seam provides a built-in "
-"CAPTCHA (<emphasis>C</emphasis>ompletely <emphasis>A</emphasis>utomated "
-"<emphasis>P</emphasis>ublic <emphasis>T</emphasis>uring test to tell "
-"<emphasis>C</emphasis>omputers and <emphasis>H</emphasis>umans <emphasis>A</"
-"emphasis>part) algorithm to prevent automated processes from interacting "
-"with your application."
+msgid "Though strictly not part of the security API, Seam provides a built-in CAPTCHA (<emphasis>C</emphasis>ompletely <emphasis>A</emphasis>utomated <emphasis>P</emphasis>ublic <emphasis>T</emphasis>uring test to tell <emphasis>C</emphasis>omputers and <emphasis>H</emphasis>umans <emphasis>A</emphasis>part) algorithm to prevent automated processes from interacting with your application."
msgstr ""
#. Tag: title
@@ -7268,10 +5109,7 @@
#. Tag: para
#: Security.xml:4169
#, no-c-format
-msgid ""
-"To get up and running, it is necessary to configure the Seam Resource "
-"Servlet, which will provide the Captcha challenge images to your pages. This "
-"requires the following entry in <literal>web.xml</literal>:"
+msgid "To get up and running, it is necessary to configure the Seam Resource Servlet, which will provide the Captcha challenge images to your pages. This requires the following entry in <literal>web.xml</literal>:"
msgstr ""
#. Tag: programlisting
@@ -7280,8 +5118,7 @@
msgid ""
"<![CDATA[<servlet>\n"
" <servlet-name>Seam Resource Servlet</servlet-name>\n"
-" <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-"
-"class>\n"
+" <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>\n"
"</servlet>\n"
"\n"
"<servlet-mapping>\n"
@@ -7291,8 +5128,7 @@
msgstr ""
"<![CDATA[<servlet>\n"
" <servlet-name>Seam Resource Servlet</servlet-name>\n"
-" <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-"
-"class>\n"
+" <servlet-class>org.jboss.seam.servlet.SeamResourceServlet</servlet-class>\n"
"</servlet>\n"
"\n"
"<servlet-mapping>\n"
@@ -7309,8 +5145,7 @@
#. Tag: para
#: Security.xml:4181
#, no-c-format
-msgid ""
-"Adding a CAPTCHA challenge to a form is extremely easy. Here's an example:"
+msgid "Adding a CAPTCHA challenge to a form is extremely easy. Here's an example:"
msgstr ""
#. Tag: programlisting
@@ -7318,15 +5153,13 @@
#, no-c-format
msgid ""
"<![CDATA[<h:graphicImage value=\"/seam/resource/captcha\"/>\n"
-"<h:inputText id=\"verifyCaptcha\" value=\"#{captcha.response}\" required="
-"\"true\">\n"
+"<h:inputText id=\"verifyCaptcha\" value=\"#{captcha.response}\" required=\"true\">\n"
" <s:validate />\n"
"</h:inputText>\n"
"<h:message for=\"verifyCaptcha\"/>]]>"
msgstr ""
"<![CDATA[<h:graphicImage value=\"/seam/resource/captcha\"/>\n"
-"<h:inputText id=\"verifyCaptcha\" value=\"#{captcha.response}\" required="
-"\"true\">\n"
+"<h:inputText id=\"verifyCaptcha\" value=\"#{captcha.response}\" required=\"true\">\n"
" <s:validate />\n"
"</h:inputText>\n"
"<h:message for=\"verifyCaptcha\"/>]]>"
@@ -7334,11 +5167,7 @@
#. Tag: para
#: Security.xml:4187
#, no-c-format
-msgid ""
-"That's all there is to it. The <literal>graphicImage</literal> control "
-"displays the CAPTCHA challenge, and the <literal>inputText</literal> "
-"receives the user's response. The response is automatically validated "
-"against the CAPTCHA when the form is submitted."
+msgid "That's all there is to it. The <literal>graphicImage</literal> control displays the CAPTCHA challenge, and the <literal>inputText</literal> receives the user's response. The response is automatically validated against the CAPTCHA when the form is submitted."
msgstr ""
#. Tag: title
@@ -7350,8 +5179,7 @@
#. Tag: para
#: Security.xml:4198
#, no-c-format
-msgid ""
-"You may customize the CAPTCHA algorithm by overriding the built-in component:"
+msgid "You may customize the CAPTCHA algorithm by overriding the built-in component:"
msgstr ""
#. Tag: programlisting
@@ -7365,8 +5193,7 @@
" @Override @Create\n"
" public void init()\n"
" {\n"
-" setChallenge(\"What is the answer to life, the universe and everything?"
-"\");\n"
+" setChallenge(\"What is the answer to life, the universe and everything?\");\n"
" setCorrectResponse(\"42\");\n"
" }\n"
"\n"
@@ -7374,8 +5201,7 @@
" public BufferedImage renderChallenge()\n"
" {\n"
" BufferedImage img = super.renderChallenge();\n"
-" img.getGraphics().drawOval(5, 3, 60, 14); //add an obscuring "
-"decoration\n"
+" img.getGraphics().drawOval(5, 3, 60, 14); //add an obscuring decoration\n"
" return img;\n"
" }\n"
"}]]>"
@@ -7387,8 +5213,7 @@
" @Override @Create\n"
" public void init()\n"
" {\n"
-" setChallenge(\"What is the answer to life, the universe and everything?"
-"\");\n"
+" setChallenge(\"What is the answer to life, the universe and everything?\");\n"
" setCorrectResponse(\"42\");\n"
" }\n"
"\n"
@@ -7396,14 +5221,14 @@
" public BufferedImage renderChallenge()\n"
" {\n"
" BufferedImage img = super.renderChallenge();\n"
-" img.getGraphics().drawOval(5, 3, 60, 14); //add an obscuring "
-"decoration\n"
+" img.getGraphics().drawOval(5, 3, 60, 14); //add an obscuring decoration\n"
" return img;\n"
" }\n"
"}]]>"
#. Tag: title
-#: Security.xml:4209 Security.xml:4217
+#: Security.xml:4209
+#: Security.xml:4217
#, no-c-format
msgid "Security Events"
msgstr ""
@@ -7411,9 +5236,7 @@
#. Tag: para
#: Security.xml:4211
#, no-c-format
-msgid ""
-"The following table describes a number of events (see <xref linkend=\"events"
-"\"/>) raised by Seam Security in response to certain security-related events."
+msgid "The following table describes a number of events (see <xref linkend=\"events\"/>) raised by Seam Security in response to certain security-related events."
msgstr ""
#. Tag: para
@@ -7455,8 +5278,7 @@
#. Tag: para
#: Security.xml:4267
#, no-c-format
-msgid ""
-"Raised when a user that is already authenticated attempts to log in again."
+msgid "Raised when a user that is already authenticated attempts to log in again."
msgstr ""
#. Tag: literal
@@ -7480,9 +5302,7 @@
#. Tag: para
#: Security.xml:4291
#, no-c-format
-msgid ""
-"Raised when a security check fails when the user is logged in however "
-"doesn't have sufficient privileges."
+msgid "Raised when a security check fails when the user is logged in however doesn't have sufficient privileges."
msgstr ""
#. Tag: literal
@@ -7554,24 +5374,13 @@
#. Tag: para
#: Security.xml:4366
#, no-c-format
-msgid ""
-"Sometimes it may be necessary to perform certain operations with elevated "
-"privileges, such as creating a new user account as an unauthenticated user. "
-"Seam Security supports such a mechanism via the <literal>RunAsOperation</"
-"literal> class. This class allows either the <literal>Principal</literal> or "
-"<literal>Subject</literal>, or the user's roles to be overridden for a "
-"single set of operations."
+msgid "Sometimes it may be necessary to perform certain operations with elevated privileges, such as creating a new user account as an unauthenticated user. Seam Security supports such a mechanism via the <literal>RunAsOperation</literal> class. This class allows either the <literal>Principal</literal> or <literal>Subject</literal>, or the user's roles to be overridden for a single set of operations."
msgstr ""
#. Tag: para
#: Security.xml:4374
#, no-c-format
-msgid ""
-"The following code example demonstrates how <literal>RunAsOperation</"
-"literal> is used, by calling its <literal>addRole()</literal> method to "
-"provide a set of roles to masquerade as for the duration of the operation. "
-"The <literal>execute()</literal> method contains the code that will be "
-"executed with the elevated privileges."
+msgid "The following code example demonstrates how <literal>RunAsOperation</literal> is used, by calling its <literal>addRole()</literal> method to provide a set of roles to masquerade as for the duration of the operation. The <literal>execute()</literal> method contains the code that will be executed with the elevated privileges."
msgstr ""
#. Tag: programlisting
@@ -7595,12 +5404,7 @@
#. Tag: para
#: Security.xml:4383
#, no-c-format
-msgid ""
-"In a similar way, the <literal>getPrincipal()</literal> or "
-"<literal>getSubject()</literal> methods can also be overriden to specify the "
-"<literal>Principal</literal> and <literal>Subject</literal> instances to use "
-"for the duration of the operation. Finally, the <literal>run()</literal> "
-"method is used to carry out the <literal>RunAsOperation</literal>."
+msgid "In a similar way, the <literal>getPrincipal()</literal> or <literal>getSubject()</literal> methods can also be overriden to specify the <literal>Principal</literal> and <literal>Subject</literal> instances to use for the duration of the operation. Finally, the <literal>run()</literal> method is used to carry out the <literal>RunAsOperation</literal>."
msgstr ""
#. Tag: title
@@ -7612,14 +5416,7 @@
#. Tag: para
#: Security.xml:4396
#, no-c-format
-msgid ""
-"Sometimes it might be necessary to extend the Identity component if your "
-"application has special security requirements. The following example "
-"(contrived, as credentials would normally be handled by the "
-"<literal>Credentials</literal> component instead) shows an extended Identity "
-"component with an additional <literal>companyCode</literal> field. The "
-"install precendence of <literal>APPLICATION</literal> ensures that this "
-"extended Identity gets installed in preference to the built-in Identity."
+msgid "Sometimes it might be necessary to extend the Identity component if your application has special security requirements. The following example (contrived, as credentials would normally be handled by the <literal>Credentials</literal> component instead) shows an extended Identity component with an additional <literal>companyCode</literal> field. The install precendence of <literal>APPLICATION</literal> ensures that this extended Identity gets installed in preference to the built-in Identity."
msgstr ""
#. Tag: programlisting
@@ -7633,8 +5430,7 @@
"@Startup\n"
"public class CustomIdentity extends Identity\n"
"{\n"
-" private static final LogProvider log = Logging.getLogProvider"
-"(CustomIdentity.class);\n"
+" private static final LogProvider log = Logging.getLogProvider(CustomIdentity.class);\n"
"\n"
" private String companyCode;\n"
"\n"
@@ -7663,8 +5459,7 @@
"@Startup\n"
"public class CustomIdentity extends Identity\n"
"{\n"
-" private static final LogProvider log = Logging.getLogProvider"
-"(CustomIdentity.class);\n"
+" private static final LogProvider log = Logging.getLogProvider(CustomIdentity.class);\n"
"\n"
" private String companyCode;\n"
"\n"
@@ -7689,11 +5484,7 @@
#. Tag: para
#: Security.xml:4407
#, no-c-format
-msgid ""
-"Note that an <literal>Identity</literal> component must be marked "
-"<literal>@Startup</literal>, so that it is available immediately after the "
-"<literal>SESSION</literal> context begins. Failing to do this may render "
-"certain Seam functionality inoperable in your application."
+msgid "Note that an <literal>Identity</literal> component must be marked <literal>@Startup</literal>, so that it is available immediately after the <literal>SESSION</literal> context begins. Failing to do this may render certain Seam functionality inoperable in your application."
msgstr ""
#. Tag: title
@@ -7705,44 +5496,19 @@
#. Tag: para
#: Security.xml:4421
#, no-c-format
-msgid ""
-"OpenID is a community standard for external web-based authentication. The "
-"basic idea is that any web application can supplement (or replace) its local "
-"handling of authentication by delegating responsibility to an external "
-"OpenID server of the user's chosing. This benefits the user, who no longer "
-"has to remember a name and password for every web application he uses, and "
-"the developer, who is relieved of some of the burden of maintaining a "
-"complex authentication system."
+msgid "OpenID is a community standard for external web-based authentication. The basic idea is that any web application can supplement (or replace) its local handling of authentication by delegating responsibility to an external OpenID server of the user's chosing. This benefits the user, who no longer has to remember a name and password for every web application he uses, and the developer, who is relieved of some of the burden of maintaining a complex authentication system."
msgstr ""
#. Tag: para
#: Security.xml:4430
#, no-c-format
-msgid ""
-"When using OpenID, the user selects an OpenID provider, and the provider "
-"assigns the user an OpenID. The id will take the form of a URL, for example "
-"<literal>http://maximoburrito.myopenid.com</literal> however, it's "
-"acceptable to leave off the <literal>http://</literal> part of the "
-"identifier when logging into a site. The web application (known as a relying "
-"party in OpenID-speak) determines which OpenID server to contact and "
-"redirects the user to the remote site for authentication. Upon successful "
-"authentication the user is given the (cryptographically secure) token "
-"proving his identity and is redirected back to the original web application."
-"The local web application can then be sure the user accessing the "
-"application controls the OpenID he presented."
+msgid "When using OpenID, the user selects an OpenID provider, and the provider assigns the user an OpenID. The id will take the form of a URL, for example <literal>http://maximoburrito.myopenid.com</literal> however, it's acceptable to leave off the <literal>http://</literal> part of the identifier when logging into a site. The web application (known as a relying party in OpenID-speak) determines which OpenID server to contact and redirects the user to the remote site for authentication. Upon successful authentication the user is given the (cryptographically secure) token proving his identity and is redirected back to the original web application.The local web application can then be sure the user accessing the application controls the OpenID he presented."
msgstr ""
#. Tag: para
#: Security.xml:4439
#, no-c-format
-msgid ""
-"It's important to realize at this point that authentication does not imply "
-"authorization. The web application still needs to make a determination of "
-"how to use that information. The web application could treat the user as "
-"instantly logged in and give full access to the system or it could try and "
-"map the presented OpenID to a local user account, prompting the user to "
-"register if he hasn't already. The choice of how to handle the OpenID is "
-"left as a design decision for the local application."
+msgid "It's important to realize at this point that authentication does not imply authorization. The web application still needs to make a determination of how to use that information. The web application could treat the user as instantly logged in and give full access to the system or it could try and map the presented OpenID to a local user account, prompting the user to register if he hasn't already. The choice of how to handle the OpenID is left as a design decision for the local application."
msgstr ""
#. Tag: title
@@ -7754,21 +5520,13 @@
#. Tag: para
#: Security.xml:4450
#, no-c-format
-msgid ""
-"Seam uses the openid4java package and requires four additional JARs to make "
-"use of the Seam integration. These are: <literal>htmlparser.jar</literal>, "
-"<literal>openid4java.jar</literal>, <literal>openxri-client.jar</literal> "
-"and <literal>openxri-syntax.jar</literal>."
+msgid "Seam uses the openid4java package and requires four additional JARs to make use of the Seam integration. These are: <literal>htmlparser.jar</literal>, <literal>openid4java.jar</literal>, <literal>openxri-client.jar</literal> and <literal>openxri-syntax.jar</literal>."
msgstr ""
#. Tag: para
#: Security.xml:4456
#, no-c-format
-msgid ""
-"OpenID processing requires the use of the <literal>OpenIdPhaseListener</"
-"literal>, which should be added to your <literal>faces-config.xml</literal> "
-"file. The phase listener processes the callback from the OpenID provider, "
-"allowing re-entry into the local application."
+msgid "OpenID processing requires the use of the <literal>OpenIdPhaseListener</literal>, which should be added to your <literal>faces-config.xml</literal> file. The phase listener processes the callback from the OpenID provider, allowing re-entry into the local application."
msgstr ""
#. Tag: programlisting
@@ -7776,23 +5534,17 @@
#, no-c-format
msgid ""
"<lifecycle>\n"
-" <phase-listener>org.jboss.seam.security.openid."
-"OpenIdPhaseListener</phase-listener>\n"
+" <phase-listener>org.jboss.seam.security.openid.OpenIdPhaseListener</phase-listener>\n"
"</lifecycle>"
msgstr ""
"<lifecycle>\n"
-" <phase-listener>org.jboss.seam.security.openid."
-"OpenIdPhaseListener</phase-listener>\n"
+" <phase-listener>org.jboss.seam.security.openid.OpenIdPhaseListener</phase-listener>\n"
"</lifecycle>"
#. Tag: para
#: Security.xml:4465
#, no-c-format
-msgid ""
-"With this configuration, OpenID support is available to your application. "
-"The OpenID support component, <literal>org.jboss.seam.security.openid."
-"openid</literal>, is installed automatically if the openid4java classes are "
-"on the classpath."
+msgid "With this configuration, OpenID support is available to your application. The OpenID support component, <literal>org.jboss.seam.security.openid.openid</literal>, is installed automatically if the openid4java classes are on the classpath."
msgstr ""
#. Tag: title
@@ -7804,11 +5556,7 @@
#. Tag: para
#: Security.xml:4475
#, no-c-format
-msgid ""
-"To initiate an OpenID login, you can present a simply form to the user "
-"asking for the user's OpenID. The <literal>#{openid.id}</literal> value "
-"accepts the user's OpenID and the <literal>#{openid.login}</literal> action "
-"initiates an authentication request."
+msgid "To initiate an OpenID login, you can present a simply form to the user asking for the user's OpenID. The <literal>#{openid.id}</literal> value accepts the user's OpenID and the <literal>#{openid.login}</literal> action initiates an authentication request."
msgstr ""
#. Tag: programlisting
@@ -7817,26 +5565,18 @@
msgid ""
"<h:form>\n"
" <h:inputText value="#{openid.id}" />\n"
-" <h:commandButton action="#{openid.login}" value=""
-"OpenID Login"/>\n"
+" <h:commandButton action="#{openid.login}" value="OpenID Login"/>\n"
"</h:form>"
msgstr ""
"<h:form>\n"
" <h:inputText value="#{openid.id}" />\n"
-" <h:commandButton action="#{openid.login}" value=""
-"OpenID Login"/>\n"
+" <h:commandButton action="#{openid.login}" value="OpenID Login"/>\n"
"</h:form>"
#. Tag: para
#: Security.xml:4482
#, no-c-format
-msgid ""
-"When the user submits the login form, he will be redirected to his OpenID "
-"provider. The user will eventually return to your application through the "
-"Seam pseudo-view <literal>/openid.xhtml</literal>, which is provided by the "
-"<literal>OpenIdPhaseListener</literal>. Your application can handle the "
-"OpenID response by means of a <literal>pages.xml</literal> navigation from "
-"that view, just as if the user had never left your application."
+msgid "When the user submits the login form, he will be redirected to his OpenID provider. The user will eventually return to your application through the Seam pseudo-view <literal>/openid.xhtml</literal>, which is provided by the <literal>OpenIdPhaseListener</literal>. Your application can handle the OpenID response by means of a <literal>pages.xml</literal> navigation from that view, just as if the user had never left your application."
msgstr ""
#. Tag: title
@@ -7848,10 +5588,7 @@
#. Tag: para
#: Security.xml:4493
#, no-c-format
-msgid ""
-"The simplest strategy is to simply login the user immediately. The following "
-"navigation rule shows how to handle this using the <literal>#{openid."
-"loginImmediately()}</literal> action."
+msgid "The simplest strategy is to simply login the user immediately. The following navigation rule shows how to handle this using the <literal>#{openid.loginImmediately()}</literal> action."
msgstr ""
#. Tag: programlisting
@@ -7891,15 +5628,7 @@
#. Tag: para
#: Security.xml:4499
#, no-c-format
-msgid ""
-"Thie <literal>loginImmediately()</literal> action checks to see if the "
-"OpenID is valid. If it is valid, it adds an OpenIDPrincipal to the identity "
-"component, marks the user as logged in (i.e. <literal>#{identity.loggedIn}</"
-"literal> will be true) and returns true. If the OpenID was not validated, "
-"the method returns false, and the user re-enters the application un-"
-"authenticated. If the user's OpenID is valid, it will be accessible using "
-"the expression <literal>#{openid.validatedId}</literal> and <literal>#"
-"{openid.valid}</literal> will be true."
+msgid "Thie <literal>loginImmediately()</literal> action checks to see if the OpenID is valid. If it is valid, it adds an OpenIDPrincipal to the identity component, marks the user as logged in (i.e. <literal>#{identity.loggedIn}</literal> will be true) and returns true. If the OpenID was not validated, the method returns false, and the user re-enters the application un-authenticated. If the user's OpenID is valid, it will be accessible using the expression <literal>#{openid.validatedId}</literal> and <literal>#{openid.valid}</literal> will be true."
msgstr ""
#. Tag: title
@@ -7911,18 +5640,7 @@
#. Tag: para
#: Security.xml:4512
#, no-c-format
-msgid ""
-"You may not want the user to be immediately logged in to your application. "
-"In that case, your navigation should check the <literal>#{openid.valid}</"
-"literal> property and redirect the user to a local registration or "
-"processing page. Actions you might take would be asking for more information "
-"and creating a local user account or presenting a captcha to avoid "
-"programmatic registrations. When you are done processing, if you want to log "
-"the user in, you can call the <literal>loginImmediately</literal> method, "
-"either through EL as shown previously or by directly interaction with the "
-"<literal>org.jboss.seam.security.openid.OpenId</literal> component. Of "
-"course, nothing prevents you from writing custom code to interact with the "
-"Seam identity component on your own for even more customized behaviour."
+msgid "You may not want the user to be immediately logged in to your application. In that case, your navigation should check the <literal>#{openid.valid}</literal> property and redirect the user to a local registration or processing page. Actions you might take would be asking for more information and creating a local user account or presenting a captcha to avoid programmatic registrations. When you are done processing, if you want to log the user in, you can call the <literal>loginImmediately</literal> method, either through EL as shown previously or by directly interaction with the <literal>org.jboss.seam.security.openid.OpenId</literal> component. Of course, nothing prevents you from writing custom code to interact with the Seam identity component on your own for even more customized behaviour."
msgstr ""
#. Tag: title
@@ -7934,12 +5652,7 @@
#. Tag: para
#: Security.xml:4528
#, no-c-format
-msgid ""
-"Logging out (forgetting an OpenID association) is done by calling <literal>#"
-"{openid.logout}</literal>. If you are not using Seam security, you can call "
-"this method directly. If you are using Seam security, you should continue to "
-"use <literal>#{identity.logout}</literal> and install an event handler to "
-"capture the logout event, calling the OpenID logout method."
+msgid "Logging out (forgetting an OpenID association) is done by calling <literal>#{openid.logout}</literal>. If you are not using Seam security, you can call this method directly. If you are using Seam security, you should continue to use <literal>#{identity.logout}</literal> and install an event handler to capture the logout event, calling the OpenID logout method."
msgstr ""
#. Tag: programlisting
@@ -7957,7 +5670,6 @@
#. Tag: para
#: Security.xml:4537
#, no-c-format
-msgid ""
-"It's important that you do not leave this out or the user will not be able "
-"to login again in the same session."
+msgid "It's important that you do not leave this out or the user will not be able to login again in the same session."
msgstr ""
+
14 years, 11 months
Seam SVN: r10920 - in branches/community/Seam_2_1/doc/Seam_Reference_Guide: bn-IN and 23 other directories.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-16 15:28:07 -0400 (Sat, 16 May 2009)
New Revision: 10920
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/as-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/as-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/bn-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/bn-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/de-DE/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/de-DE/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/en-US/Author_Group.xml
branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-ES/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-ES/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-MX/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-MX/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/fr-FR/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/fr-FR/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/gu-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/gu-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/hi-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/hi-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/ja-JP/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/ja-JP/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/kn-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/kn-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/ko-KR/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/ko-KR/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/ml-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/ml-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/mr-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/mr-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/or-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/or-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pa-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pa-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Annotations.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Author_Group.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Book_Info.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Cache.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Components.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Concepts.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Configuration.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Controls.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Conversations.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Dependencies.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Drools.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Elenhancements.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Events.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Excel.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Feedback.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Framework.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Getting_Started_With_JBoss_Tools.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Gettingstarted.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Glassfish.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Groovy.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Guice.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Gwt.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Hsearch.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/I18n.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Itext.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Jbpm.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Jms.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Mail.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Performance.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Persistence.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Preface.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Remoting.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Revision_History.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Rss.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Security.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Spring.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Testing.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Text.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Tools.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Tutorial.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Validation.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Weblogic.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Webservices.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Websphere.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Wicket.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Xml.pot
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pt-BR/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/pt-BR/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/ru-RU/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/ru-RU/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/si-LK/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/si-LK/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/sl-SL/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/sl-SL/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/ta-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/ta-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/te-IN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/te-IN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-CN/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-CN/Wicket.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-TW/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-TW/Wicket.po
Log:
Regenerated POT and updated all POs
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/as-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/as-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/as-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/as-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/as-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/as-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/bn-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/bn-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/bn-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/bn-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/bn-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/bn-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/de-DE/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/de-DE/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/de-DE/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/de-DE/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/de-DE/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/de-DE/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/en-US/Author_Group.xml
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/en-US/Author_Group.xml 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/en-US/Author_Group.xml 2009-05-16 19:28:07 UTC (rev 10920)
@@ -110,6 +110,13 @@
<shortaffil>Italian Translation</shortaffil>
</affiliation>
</othercredit>
+ <othercredit>
+ <firstname>Francesco</firstname>
+ <surname>Milesi</surname>
+ <affiliation>
+ <shortaffil>Italian Translation</shortaffil>
+ </affiliation>
+ </othercredit>
<othercredit>
<firstname>Japan</firstname>
<surname>JBoss User Group</surname>
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-ES/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-ES/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-ES/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-ES/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-ES/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-ES/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-MX/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-MX/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-MX/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_-_Contextual_Components VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-11-06 00:08+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-MX/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-MX/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/es-MX/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_-_Contextual_Components VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-11-06 00:10+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/fr-FR/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/fr-FR/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/fr-FR/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/fr-FR/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/fr-FR/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/fr-FR/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/gu-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/gu-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/gu-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/gu-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/gu-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/gu-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/hi-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/hi-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/hi-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/hi-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/hi-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/hi-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/ja-JP/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/ja-JP/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/ja-JP/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2009-03-19 18:46+0900\n"
"Last-Translator: minamoto <minamoto(a)redhat.com>\n"
"Language-Team: none\n"
@@ -70,8 +70,12 @@
#. Tag: author
#: Author_Group.xml:41
#, no-c-format
-msgid "<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</surname>"
-msgstr "<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</surname>"
+msgid ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
+msgstr ""
+"<firstname>Max</firstname> <othername>Rydahl</othername> <surname>Andersen</"
+"surname>"
#. Tag: author
#: Author_Group.xml:46
@@ -116,8 +120,7 @@
msgstr "<firstname>James</firstname> <surname>Cobb</surname>"
#. Tag: shortaffil
-#: Author_Group.xml:74
-#: Author_Group.xml:81
+#: Author_Group.xml:74 Author_Group.xml:81
#, no-c-format
msgid "Graphic Design"
msgstr "グラフィックデザイン"
@@ -159,8 +162,7 @@
msgstr "<firstname>Nicola</firstname> <surname>Benaglia</surname>"
#. Tag: shortaffil
-#: Author_Group.xml:103
-#: Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr "イタリア語翻訳"
@@ -173,19 +175,24 @@
#. Tag: othercredit
#: Author_Group.xml:113
+#, fuzzy, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr "<firstname>Dan</firstname> <surname>Allen</surname>"
+
+#. Tag: othercredit
+#: Author_Group.xml:120
#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr "日本語翻訳"
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr "<firstname>Samson</firstname> <surname>Kittoli</surname>"
-
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/ja-JP/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/ja-JP/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/ja-JP/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -4,7 +4,7 @@
msgstr ""
"Project-Id-Version: Tools\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-03-22 12:51+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2009-02-26 14:10+0900\n"
"Last-Translator: Daisuke Sano <d-sano(a)nri.co.jp>\n"
"Language-Team: Japanese <fedora-trans-ja(a)redhat.com>\n"
@@ -207,7 +207,7 @@
"\"security\"/>を参照して下さい。"
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr "例:"
@@ -348,19 +348,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -371,34 +493,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr "アプリケーションの定義"
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -412,7 +618,7 @@
"必要です。また、ページにステータスメッセージを付加します。"
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -428,7 +634,7 @@
"ページを指定することができます。"
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -438,7 +644,7 @@
"ムページを指定することができます。"
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -472,7 +678,7 @@
"]]>"
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, fuzzy, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -483,7 +689,7 @@
"<code>WebApplication</code>クラスがどれなのかは教えてあげる必要があります。"
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, fuzzy, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -505,7 +711,7 @@
"</components]]>"
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -514,7 +720,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -531,7 +737,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/kn-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/kn-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/kn-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/kn-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/kn-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/kn-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/ko-KR/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/ko-KR/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/ko-KR/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/ko-KR/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/ko-KR/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/ko-KR/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/ml-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/ml-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/ml-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/ml-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/ml-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/ml-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/mr-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/mr-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/mr-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/mr-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/mr-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/mr-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/or-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/or-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/or-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/or-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/or-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/or-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pa-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pa-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pa-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pa-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pa-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pa-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Annotations.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Annotations.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Annotations.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Author_Group.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Author_Group.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Author_Group.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
@@ -161,7 +161,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -175,17 +175,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Book_Info.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Book_Info.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Book_Info.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Cache.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Cache.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Cache.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Components.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Components.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Components.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Concepts.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Concepts.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Concepts.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Configuration.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Configuration.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Configuration.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Controls.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Controls.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Controls.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Conversations.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Conversations.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Conversations.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Dependencies.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Dependencies.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Dependencies.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Drools.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Drools.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Drools.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Elenhancements.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Elenhancements.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Elenhancements.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Events.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Events.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Events.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Excel.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Excel.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Excel.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Feedback.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Feedback.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Feedback.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Framework.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Framework.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Framework.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Getting_Started_With_JBoss_Tools.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Getting_Started_With_JBoss_Tools.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Getting_Started_With_JBoss_Tools.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Gettingstarted.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Gettingstarted.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Gettingstarted.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Glassfish.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Glassfish.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Glassfish.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Groovy.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Groovy.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Groovy.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Guice.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Guice.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Guice.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Gwt.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Gwt.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Gwt.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Hsearch.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Hsearch.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Hsearch.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/I18n.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/I18n.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/I18n.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Itext.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Itext.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Itext.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Jbpm.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Jbpm.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Jbpm.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Jms.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Jms.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Jms.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Mail.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Mail.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Mail.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Performance.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Performance.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Performance.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Persistence.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Persistence.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Persistence.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Preface.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Preface.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Preface.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Remoting.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Remoting.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Remoting.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Revision_History.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Revision_History.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Revision_History.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Rss.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Rss.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Rss.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Security.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Security.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Security.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Spring.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Spring.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Spring.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Testing.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Testing.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Testing.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Text.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Text.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Text.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:18+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Tools.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Tools.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Tools.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:19+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Tutorial.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Tutorial.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Tutorial.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:19+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Validation.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Validation.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Validation.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:19+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Weblogic.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Weblogic.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Weblogic.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:19+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Webservices.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Webservices.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Webservices.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:19+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Websphere.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Websphere.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Websphere.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:19+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Wicket.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Wicket.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Wicket.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:19+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
@@ -167,7 +167,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -275,19 +275,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -298,34 +420,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -335,7 +541,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -346,7 +552,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -354,7 +560,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -374,7 +580,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -383,7 +589,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -399,7 +605,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -408,7 +614,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -425,7 +631,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Xml.pot
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Xml.pot 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pot/Xml.pot 2009-05-16 19:28:07 UTC (rev 10920)
@@ -6,7 +6,7 @@
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-05-10 10:19+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <kde-i18n-doc(a)kde.org>\n"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pt-BR/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pt-BR/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pt-BR/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/pt-BR/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/pt-BR/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/pt-BR/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/ru-RU/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/ru-RU/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/ru-RU/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/ru-RU/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/ru-RU/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/ru-RU/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/si-LK/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/si-LK/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/si-LK/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/si-LK/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/si-LK/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/si-LK/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/sl-SL/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/sl-SL/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/sl-SL/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/sl-SL/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/sl-SL/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/sl-SL/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/ta-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/ta-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/ta-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/ta-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/ta-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/ta-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/te-IN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/te-IN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/te-IN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/te-IN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/te-IN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/te-IN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-CN/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-CN/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-CN/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:31+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-CN/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-CN/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-CN/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-TW/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-TW/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-TW/Author_Group.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
"PO-Revision-Date: 2008-05-03 11:34+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -160,7 +160,7 @@
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:103 Author_Group.xml:110
+#: Author_Group.xml:103 Author_Group.xml:110 Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr ""
@@ -174,17 +174,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr ""
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr ""
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr ""
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr ""
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-TW/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-TW/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/zh-TW/Wicket.po 2009-05-16 19:28:07 UTC (rev 10920)
@@ -5,7 +5,7 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide \n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
"PO-Revision-Date: 2008-10-14 11:39+0000\n"
"Last-Translator: Automatically generated\n"
"Language-Team: none\n"
@@ -166,7 +166,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:211
+#: Wicket.xml:109 Wicket.xml:136 Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr ""
@@ -274,19 +274,141 @@
#, no-c-format
msgid ""
"Seam needs to instrument the bytecode of your Wicket classes to be able to "
-"intercept the annotations you use. Seam provides two ways to do this.The "
-"first is to place your classes in <code>WEB-INF/wicket</code>. Seam will "
-"look for classes placed in this directory at startup and instrument them. An "
-"alternative approach, which can be used alongside the first, is to use an "
-"ant task for instrumention. Seam provides such a task; it is packaged in "
-"<literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the "
-"following manner:"
+"intercept the annotations you use. The first decision to make is: do you "
+"want your code instrumented at runtime as your app is running, or at compile "
+"time? The former requires no integration with your build environment, but "
+"has a performance penalty when loading each instrumented class for the first "
+"time. The latter is faster, but requires you to integrate this "
+"instrumentation into your build environment."
msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
msgid ""
+"There are two ways to achieve runtime instrumentation. One relies on placing "
+"wicket components to be instrumented in a special folder in your WAR "
+"deployment. If this is not acceptable or possible, you can also use an "
+"instrumentation \"agent,\" which you specify in the command line for "
+"launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid ""
+"Any classes placed in the <literal>WEB-INF/wicket</literal> folder within "
+"your WAR deployment will be automatically instrumented by the seam-wicket "
+"runtime. You can arrange to place your wicket pages and components here by "
+"specifying a separate output folder for those classes in your IDE, or "
+"through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid ""
+"The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an "
+"iinstrumentation agent through the Java Instrumentation api. This is "
+"accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid ""
+"Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a "
+"location for which you have an absolute path, as the Java Instrumentation "
+"API does not allow relative paths when specifying the location of an agent "
+"lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid ""
+"Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the "
+"command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid ""
+"In addition, you will need to add an environment variable that specifies "
+"packages that the agent should instrument. This is accomplished by a comma "
+"separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid ""
+"-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid ""
+"Note that if a package A is specified, classes in subpackages of A are also "
+"examined. The classes chosen for instrumentation can be further limited by "
+"specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</"
+"programlisting> and then marking instrumentable classes with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid ""
+"Seam supports instrumentation at compile time through either Apache Ant or "
+"Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid ""
+"Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </"
+"literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
+msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
" <classpath>\n"
@@ -297,34 +419,118 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations="
+"\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
msgstr ""
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
msgid ""
-"Then have ant copy the instrumented classes in <literal>${build.instrumented}"
-"</literal> into <literal>WEB-INF/classes</literal>. If you want to hot "
-"deploy the Wicket components, you can copy the instrumented classes to "
-"<literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your "
-"<literal>WicketApplication</literal> class is also hot-deployed. Upon a "
-"reload of hot-deployed classes, the entire WicketApplication instance has to "
-"be re-initialized, in order to pick up new references to the classes of "
-"mounted pages."
+"This results in the instrumented classes being placed in the directory "
+"specified by <literal>${build.instrumented}</literal>. You will then need to "
+"instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. "
+"If you want to hot deploy the Wicket components, you can copy the "
+"instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot "
+"deploy, make sure that your <literal>WicketApplication</literal> class is "
+"also hot-deployed. Upon a reload of hot-deployed classes, the entire "
+"WicketApplication instance has to be re-initialized, in order to pick up new "
+"references to the classes of mounted pages."
msgstr ""
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid ""
+"The <literal>useAnnotations</literal> attribute is used to make the ant task "
+"only include classes that have been marked with the "
+"<literal>@SeamWicketComponent</literal> annotation, see <xref linkend="
+"\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides "
+"a plugin named <literal>seam-instrument-wicket</literal> with a "
+"<literal>process-classes</literal> mojo. An example configuration in your "
+"pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</"
+"include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the "
+"instrumentation is limited to classes specified by the <literal>includes</"
+"literal> element. In this example, the <literal>scanAnnotations</literal> is "
+"specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid ""
+"Classes placed in WEB-INF/wicket will unconditionally be instrumented. The "
+"other instrumentation mechanisms all allow you to specify that "
+"instrumentation should only be applied to classes annotated with the "
+"<literal>@SeamWicketComponent</literal> annotation. This annotation is "
+"inherited, which means all subclasses of an annotated class will also be "
+"instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr ""
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid ""
"A Wicket web application which uses Seam should use "
@@ -334,7 +540,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid ""
"The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam "
@@ -345,7 +551,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid ""
"You'll also need to set the home page of the application by implementing the "
@@ -353,7 +559,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -373,7 +579,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid ""
"Seam automatically installs the Wicket filter for you (ensuring that it is "
@@ -382,7 +588,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -398,7 +604,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid ""
"In addition, if you plan to use JSF-based pages in the same application as "
@@ -407,7 +613,7 @@
msgstr ""
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -424,7 +630,7 @@
msgstr ""
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid ""
"Take a look at the Wicket documentation for more on authorization strategies "
14 years, 11 months
Seam SVN: r10919 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-16 15:27:10 -0400 (Sat, 16 May 2009)
New Revision: 10919
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Author_Group.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Wicket.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Author_Group.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Author_Group.po 2009-05-16 19:16:17 UTC (rev 10918)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Author_Group.po 2009-05-16 19:27:10 UTC (rev 10919)
@@ -5,8 +5,8 @@
msgstr ""
"Project-Id-Version: seam 2_0\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2009-02-19 21:44+0000\n"
-"PO-Revision-Date: 2009-02-19 22:52+0100\n"
+"POT-Creation-Date: 2009-05-16 19:18+0000\n"
+"PO-Revision-Date: 2009-05-16 21:24+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -161,6 +161,7 @@
#. Tag: shortaffil
#: Author_Group.xml:103
#: Author_Group.xml:110
+#: Author_Group.xml:117
#, no-c-format
msgid "Italian Translation"
msgstr "Traduzione in italiano"
@@ -174,17 +175,23 @@
#. Tag: othercredit
#: Author_Group.xml:113
#, no-c-format
+msgid "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+msgstr "<firstname>Francesco</firstname> <surname>Milesi</surname>"
+
+#. Tag: othercredit
+#: Author_Group.xml:120
+#, no-c-format
msgid "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
msgstr "<firstname>Japan</firstname> <surname>JBoss User Group</surname>"
#. Tag: shortaffil
-#: Author_Group.xml:117
+#: Author_Group.xml:124
#, no-c-format
msgid "Japanese Translation"
msgstr "Traduzione in giapponese"
#. Tag: editor
-#: Author_Group.xml:120
+#: Author_Group.xml:127
#, no-c-format
msgid "<firstname>Samson</firstname> <surname>Kittoli</surname>"
msgstr "<firstname>Samson</firstname> <surname>Kittoli</surname>"
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Wicket.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Wicket.po 2009-05-16 19:16:17 UTC (rev 10918)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Wicket.po 2009-05-16 19:27:10 UTC (rev 10919)
@@ -5,8 +5,8 @@
msgstr ""
"Project-Id-Version: Seam_Reference_Guide\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
-"POT-Creation-Date: 2008-12-27 11:29+0000\n"
-"PO-Revision-Date: 2009-04-07 15:43+0100\n"
+"POT-Creation-Date: 2009-05-16 19:19+0000\n"
+"PO-Revision-Date: 2009-05-16 21:26+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: Italian <stefano.travelli(a)gmail.com>\n"
"MIME-Version: 1.0\n"
@@ -140,7 +140,7 @@
#. Tag: para
#: Wicket.xml:109
#: Wicket.xml:136
-#: Wicket.xml:211
+#: Wicket.xml:295
#, no-c-format
msgid "For example:"
msgstr "Ad esempio:"
@@ -246,12 +246,102 @@
#. Tag: para
#: Wicket.xml:176
#, no-c-format
-msgid "Seam needs to instrument the bytecode of your Wicket classes to be able to intercept the annotations you use. Seam provides two ways to do this.The first is to place your classes in <code>WEB-INF/wicket</code>. Seam will look for classes placed in this directory at startup and instrument them. An alternative approach, which can be used alongside the first, is to use an ant task for instrumention. Seam provides such a task; it is packaged in <literal>jboss-seam-wicket-ant.jar </literal>, and can be used in the following manner:"
-msgstr "Seam ha bisogno di intervenire sul bytecode delle classi Wicket in modo da poter intercettare le annotazioni usate. Seam fornisce due modi per fare questo. Il primo è di mettere le classi in <code>WEB-INF/wicket</code>. Seam cercherà le classi messe in questa cartella durante l'avvio e interverrà sul loro bytecode. Un approccio alternativo, che può essere utilizzato insieme al primo, è di usare un task ant per modificare il bytecode. Seam fornisce questo task: è contenuto in <literal>jboss-seam-wicket-ant.jar</literal> e può essere usato nel seguento modo: "
+msgid "Seam needs to instrument the bytecode of your Wicket classes to be able to intercept the annotations you use. The first decision to make is: do you want your code instrumented at runtime as your app is running, or at compile time? The former requires no integration with your build environment, but has a performance penalty when loading each instrumented class for the first time. The latter is faster, but requires you to integrate this instrumentation into your build environment."
+msgstr ""
-#. Tag: programlisting
+#. Tag: title
#: Wicket.xml:186
#, no-c-format
+msgid "Runtime instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:187
+#, no-c-format
+msgid "There are two ways to achieve runtime instrumentation. One relies on placing wicket components to be instrumented in a special folder in your WAR deployment. If this is not acceptable or possible, you can also use an instrumentation \"agent,\" which you specify in the command line for launching your container."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:195
+#, no-c-format
+msgid "Location-specific instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:196
+#, no-c-format
+msgid "Any classes placed in the <literal>WEB-INF/wicket</literal> folder within your WAR deployment will be automatically instrumented by the seam-wicket runtime. You can arrange to place your wicket pages and components here by specifying a separate output folder for those classes in your IDE, or through the use of ant scripts."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:205
+#, no-c-format
+msgid "Runtime instrumentation agent"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:206
+#, no-c-format
+msgid "The jar file <literal>jboss-seam-wicket.jar</literal> can be used as an iinstrumentation agent through the Java Instrumentation api. This is accomplished through the following steps:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:211
+#, no-c-format
+msgid "Arrange for the <literal>jboss-seam-wicket.jar</literal> file to live in a location for which you have an absolute path, as the Java Instrumentation API does not allow relative paths when specifying the location of an agent lib."
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:216
+#, no-c-format
+msgid "Add <literal>javaagent:/path/to/jboss-seam-wicket.jar</literal> to the command line options when launching your webapp container:"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:220
+#, no-c-format
+msgid "In addition, you will need to add an environment variable that specifies packages that the agent should instrument. This is accomplished by a comma separated list of package names:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:223
+#, no-c-format
+msgid "-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+msgstr "-Dorg.jboss.seam.wicket.instrumented-packages=my.package.one,my.other.package"
+
+#. Tag: para
+#: Wicket.xml:224
+#, no-c-format
+msgid "Note that if a package A is specified, classes in subpackages of A are also examined. The classes chosen for instrumentation can be further limited by specifying: <programlisting>-Dorg.jboss.seam.wicket.scanAnnotations=true</programlisting> and then marking instrumentable classes with the <literal>@SeamWicketComponent</literal> annotation, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:234
+#, no-c-format
+msgid "Compile-time instrumentation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:235
+#, no-c-format
+msgid "Seam supports instrumentation at compile time through either Apache Ant or Apache Maven."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:238
+#, no-c-format
+msgid "Instrumenting with ant"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:239
+#, no-c-format
+msgid "Seam provides an ant task in the <literal>jboss-seam-wicket-ant.jar </literal>. This is used in the following manner:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:242
+#, no-c-format
msgid ""
"<![CDATA[<taskdef name=\"instrumentWicket\" \n"
" classname=\"org.jboss.seam.wicket.ioc.WicketInstrumentationTask\">\n"
@@ -263,7 +353,7 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations=\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
@@ -278,43 +368,113 @@
" </classpath>\n"
"</taskdef>\n"
"\n"
-"<instrumentWicket outputDirectory=\"${build.instrumented}\">\n"
+"<instrumentWicket outputDirectory=\"${build.instrumented}\" useAnnotations=\"true\">\n"
" <classpath refid=\"build.classpath\"/>\n"
" <fileset dir=\"${build.classes}\" includes=\"**/*.class\"/>\n"
"</instrumentWicket>]]>"
#. Tag: para
-#: Wicket.xml:187
+#: Wicket.xml:244
#, no-c-format
-msgid "Then have ant copy the instrumented classes in <literal>${build.instrumented}</literal> into <literal>WEB-INF/classes</literal>. If you want to hot deploy the Wicket components, you can copy the instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your <literal>WicketApplication</literal> class is also hot-deployed. Upon a reload of hot-deployed classes, the entire WicketApplication instance has to be re-initialized, in order to pick up new references to the classes of mounted pages."
-msgstr "Dopo bisogna fare in modo che Ant copi le classi alterate da <literal>${build.instrumented}</literal> a <literal>WEB-INF/classes</literal>. Se si vuole attivare l'esecuzione a caldo dei componenti Wicket è possibile copiare le classi alterate in <literal>WEB-INF/hot</literal>. Se si usa l'esecuzione a caldo, accertarsi che anche la classe <literal>WicketApplication</literal> sia eseguita nello stesso modo. Dopo che le classi eseguite a caldo vengono ricaricate, l'intera istanza di WicketApplication deve essere reinizializzata allo scopo di recuperare tutti i nuovi riferimenti alle classi delle pagine montate."
+msgid "This results in the instrumented classes being placed in the directory specified by <literal>${build.instrumented}</literal>. You will then need to instruct ant to copy these classes into <literal>WEB-INF/classes</literal>. If you want to hot deploy the Wicket components, you can copy the instrumented classes to <literal>WEB-INF/dev</literal>; if you use hot deploy, make sure that your <literal>WicketApplication</literal> class is also hot-deployed. Upon a reload of hot-deployed classes, the entire WicketApplication instance has to be re-initialized, in order to pick up new references to the classes of mounted pages."
+msgstr "Questo ha effetto nelle classi instrumented che vengono messe nella directory specificata da <literal>${build.instrumented}</literal>.Occorre poi fare in modo che Ant copi le classi alterate da <literal>${build.instrumented}</literal> a <literal>WEB-INF/classes</literal>. Se si vuole attivare l'esecuzione a caldo dei componenti Wicket è possibile copiare le classi alterate in <literal>WEB-INF/hot</literal>. Se si usa l'esecuzione a caldo, accertarsi che anche la classe <literal>WicketApplication</literal> sia eseguita nello stesso modo. Dopo che le classi eseguite a caldo vengono ricaricate, l'intera istanza di WicketApplication deve essere reinizializzata allo scopo di recuperare tutti i nuovi riferimenti alle classi delle pagine montate."
+#. Tag: para
+#: Wicket.xml:255
+#, no-c-format
+msgid "The <literal>useAnnotations</literal> attribute is used to make the ant task only include classes that have been marked with the <literal>@SeamWicketComponent</literal> annotation, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
#. Tag: title
-#: Wicket.xml:202
+#: Wicket.xml:261
#, no-c-format
+msgid "Instrumenting with maven"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:262
+#, no-c-format
+msgid ""
+"The jboss maven repository <literal>repository.jboss.org</literal> provides a plugin named <literal>seam-instrument-wicket</literal> with a <literal>process-classes</literal> mojo. An example configuration in your pom.xml might look like: <programlisting role=\"XML\"><![CDATA[<build>\n"
+" <plugins>\n"
+" <plugin>\n"
+" <groupId>org.jboss.seam</groupId>\n"
+" <artifactId>seam-instrument-wicket</artifactId>\n"
+" <version>2.1.2</version>\n"
+" <configuration>\n"
+" <scanAnnotations>true</scanAnnotations>\n"
+" <includes>\n"
+" <include>your.package.name</include>\n"
+" </includes>\n"
+" </configuration>\n"
+" <executions>\n"
+" <execution>\n"
+" <id>instrument</id>\n"
+" <phase>process-classes</phase>\n"
+" <goals>\n"
+" <goal>instrument</goal>\n"
+" </goals>\n"
+" </execution>\n"
+" </executions>\n"
+" </plugin>\n"
+" </plugins>\n"
+"</build>]]></programlisting> The above example illustrates that the instrumentation is limited to classes specified by the <literal>includes</literal> element. In this example, the <literal>scanAnnotations</literal> is specified, see <xref linkend=\"SeamWicketComponent\"/>."
+msgstr ""
+
+#. Tag: title
+#: Wicket.xml:274
+#, no-c-format
+msgid "The <literal>@SeamWicketComponent</literal> annotation"
+msgstr ""
+
+#. Tag: para
+#: Wicket.xml:275
+#, no-c-format
+msgid "Classes placed in WEB-INF/wicket will unconditionally be instrumented. The other instrumentation mechanisms all allow you to specify that instrumentation should only be applied to classes annotated with the <literal>@SeamWicketComponent</literal> annotation. This annotation is inherited, which means all subclasses of an annotated class will also be instrumented. An example usage is:"
+msgstr ""
+
+#. Tag: programlisting
+#: Wicket.xml:280
+#, no-c-format
+msgid ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+msgstr ""
+"<![CDATA[import org.jboss.seam.wicket.ioc.SeamWicketComponent;\n"
+"@SeamWicketComponent\n"
+"public class MyPage extends WebPage{\n"
+" ...\n"
+"}]]>"
+
+#. Tag: title
+#: Wicket.xml:286
+#, no-c-format
msgid "Defining the Application"
msgstr "Definire l'applicazione"
#. Tag: para
-#: Wicket.xml:204
+#: Wicket.xml:288
#, no-c-format
msgid "A Wicket web application which uses Seam should use <code>SeamWebApplication</code> as the base class; this creates hooks into the Wicket lifecycle allowing Seam to automagically propagate the conversation as needed. It also adds status messages to the page."
msgstr "Un'applicazione web Wicket che usa Seam deve usare <code>SeamWebApplication</code> come classe base. Questa crea gli agganci nel ciclo Wicket che consentono a Seam di propagare auto-magicamente la conversazione quando necessario. Aggiunge pure i messaggi di stato alla pagina."
#. Tag: para
-#: Wicket.xml:215
+#: Wicket.xml:299
#, no-c-format
msgid "The <code>SeamAuthorizationStrategy</code> delegates authorization to Seam Security, allowing the use of <code>@Restrict</code> on Wicket components. <code>SeamWebApplication</code> installs the authorization strategy for you. You can specify the login page by implementing the <code>getLoginPage()</code> method."
msgstr "La <code>SeamAuthorizationStrategy</code> delega le autorizzazioni a Seam Security, consentendo l'uso di <code>@Restrict</code> nei componenti Wicket. <code>SeamWebApplication</code> provvede ad installare la strategia di autorizzazioni. E' possibile specificare una pagina di login implementando il metodo <code>getLoginPage()</code>."
#. Tag: para
-#: Wicket.xml:223
+#: Wicket.xml:307
#, no-c-format
msgid "You'll also need to set the home page of the application by implementing the <code>getHomePage()</code> method."
msgstr "C'è poi bisogno di impostare la home page dell'applicazione implementando il metodo <code>getHomePage()</code>."
#. Tag: programlisting
-#: Wicket.xml:228
+#: Wicket.xml:312
#, no-c-format
msgid ""
"<![CDATA[public class WicketBookingApplication extends SeamWebApplication {\n"
@@ -348,13 +508,13 @@
"]]>"
#. Tag: para
-#: Wicket.xml:230
+#: Wicket.xml:314
#, no-c-format
msgid "Seam automatically installs the Wicket filter for you (ensuring that it is inserted in the correct place for you). But you still need to tell Wicket which <code>WebApplication</code> class to use."
msgstr "Seam installa automaticamente il filtro Wicket (assicurando che sia inserito nella posizione corretta), ma è ancora necessario indicare a Wicket quale classe <code>WebApplication</code> usare:"
#. Tag: programlisting
-#: Wicket.xml:236
+#: Wicket.xml:320
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -378,13 +538,13 @@
"</components]]>"
#. Tag: para
-#: Wicket.xml:238
+#: Wicket.xml:322
#, no-c-format
msgid "In addition, if you plan to use JSF-based pages in the same application as wicket pages, you'll need to ensure that the jsf exception filter is only enabled for jsf urls:"
msgstr "In aggiunta se si pensa di usare le pagine basate su JSF in un'appliczione con pagine wicket, bisogna assicurarsi che il filtro delle eccezioni jsf sia abilitato per gli url jsf:"
#. Tag: programlisting
-#: Wicket.xml:243
+#: Wicket.xml:327
#, no-c-format
msgid ""
"<![CDATA[<components xmlns=\"http://jboss.com/products/seam/components\"\n"
@@ -410,8 +570,27 @@
"</components]]>"
#. Tag: para
-#: Wicket.xml:247
+#: Wicket.xml:331
#, no-c-format
msgid "Take a look at the Wicket documentation for more on authorization strategies and other methods you can override on the <code>Application</code> class."
msgstr "Per maggiori informazioni sulle strategie di autorizzazione e gli altri metodi che possono essere implementati sulla classe <code>Application</code> fare riferimento alla documentazione Wicket."
+#~ msgid ""
+#~ "Seam needs to instrument the bytecode of your Wicket classes to be able "
+#~ "to intercept the annotations you use. Seam provides two ways to do this."
+#~ "The first is to place your classes in <code>WEB-INF/wicket</code>. Seam "
+#~ "will look for classes placed in this directory at startup and instrument "
+#~ "them. An alternative approach, which can be used alongside the first, is "
+#~ "to use an ant task for instrumention. Seam provides such a task; it is "
+#~ "packaged in <literal>jboss-seam-wicket-ant.jar </literal>, and can be "
+#~ "used in the following manner:"
+#~ msgstr ""
+#~ "Seam ha bisogno di intervenire sul bytecode delle classi Wicket in modo "
+#~ "da poter intercettare le annotazioni usate. Seam fornisce due modi per "
+#~ "fare questo. Il primo è di mettere le classi in <code>WEB-INF/wicket</"
+#~ "code>. Seam cercherà le classi messe in questa cartella durante l'avvio e "
+#~ "interverrà sul loro bytecode. Un approccio alternativo, che può essere "
+#~ "utilizzato insieme al primo, è di usare un task ant per modificare il "
+#~ "bytecode. Seam fornisce questo task: è contenuto in <literal>jboss-seam-"
+#~ "wicket-ant.jar</literal> e può essere usato nel seguento modo: "
+
14 years, 11 months
Seam SVN: r10918 - branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT.
by seam-commits@lists.jboss.org
Author: nico.ben
Date: 2009-05-16 15:16:17 -0400 (Sat, 16 May 2009)
New Revision: 10918
Modified:
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Configuration.po
branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Webservices.po
Log:
JBSEAM-3767: Italian translation of Seam guide
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Configuration.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Configuration.po 2009-05-16 17:30:12 UTC (rev 10917)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Configuration.po 2009-05-16 19:16:17 UTC (rev 10918)
@@ -6,7 +6,7 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-05-05 12:31+0000\n"
-"PO-Revision-Date: 2009-05-13 22:31+0100\n"
+"PO-Revision-Date: 2009-05-16 21:14+0100\n"
"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
@@ -391,7 +391,7 @@
#: Configuration.xml:179
#, no-c-format
msgid "The <literal>view-mapping</literal> parameter must match the servlet mapping defined for the Faces Servlet in the <literal>web.xml</literal> file. If ommitted, the rewrite filter assumes the pattern <literal>*.seam</literal>."
-msgstr ""
+msgstr "Il parametro <literal>view-mapping</literal>deve corrispondere alla mappatura del servlet definita per Faces Servlet nel file <literal>web.xml</literal>. Se omesso, il filtro rewrite assume il pattern <literal>*.seam</literal>."
#. Tag: title
#: Configuration.xml:186
@@ -403,7 +403,7 @@
#: Configuration.xml:187
#, no-c-format
msgid "This feature is necessary when using the Seam file upload JSF control. It detects multipart form requests and processes them according to the multipart/form-data specification (RFC-2388). To override the default settings, add the following entry to <literal>components.xml</literal>:"
-msgstr ""
+msgstr "Questa caratteristica è necessaria per usare il controllo JSF di upload dei file. Esso rileva le richieste form multipart e le processa in accordo con la specifica multipart/form-data (RFC-2388). Per sovrascrivere queste impostazioni di default si aggiunga la seguente riga a <literal>components.xml</literal>:"
#. Tag: programlisting
#: Configuration.xml:191
@@ -421,13 +421,13 @@
#: Configuration.xml:195
#, no-c-format
msgid "<literal>create-temp-files</literal> — If set to <literal>true</literal>, uploaded files are written to a temporary file (instead of held in memory). This may be an important consideration if large file uploads are expected. The default setting is <literal>false</literal>."
-msgstr ""
+msgstr "<literal>create-temp-files</literal> — Se impostato a <literal>true</literal>, i file caricati vengono scritti in un file temporaneo (invece di essere mantenuti in memoria). Questa può essere una considerazione importante se ci si aspettano upload di file grandi. L'impostazione di default è <literal>false</literal>."
#. Tag: para
#: Configuration.xml:202
#, no-c-format
msgid "<literal>max-request-size</literal> — If the size of a file upload request (determined by reading the <literal>Content-Length</literal> header in the request) exceeds this value, the request will be aborted. The default setting is 0 (no size limit)."
-msgstr ""
+msgstr "<literal>max-request-size</literal> — Se la dimensione della richiesta di file upload (determinata leggendo l'intestazione <literal>Content-Length</literal> nella richiesta) eccede questo valore, la richiesta verrà annullata. L'impostazione di default è 0 (nessun limite di dimensioni)."
#. Tag: title
#: Configuration.xml:211
@@ -470,7 +470,7 @@
#: Configuration.xml:225
#, no-c-format
msgid "<literal>override-client</literal> — If this is set to <literal>true</literal>, the request encoding will be set to whatever is specified by <literal>encoding</literal> no matter whether the request already specifies an encoding or not. If set to <literal>false</literal>, the request encoding will only be set if the request doesn't already specify an encoding. The default setting is <literal>false</literal>."
-msgstr ""
+msgstr "<literal>override-client</literal> — Se questo è impostato a <literal>true</literal>, la codifica della richiesta sarà impostata a ciò che è specificato da <literal>encoding</literal> non importa se la richiesta già specifica una codifica o no. Se impostato a <literal>false</literal>, la codifica della richiesta sarà impostata solo se la richiesta non specifica già una codifica. L'impostazione di default è <literal>false</literal>."
#. Tag: title
#: Configuration.xml:236
@@ -482,19 +482,19 @@
#: Configuration.xml:238
#, no-c-format
msgid "If RichFaces is used in your project, Seam will install the RichFaces Ajax filter for you, making sure to install it before all other built-in filters. You don't need to install the RichFaces Ajax filter in <literal>web.xml</literal> yourself."
-msgstr ""
+msgstr "Se RichFaces viene usato nel progetto, Seam installerà il filtro RichFaces Ajax, assicurandosi di installarlo prima di tutti gli altri filtri predefiniti. Non occorre che voi installiate il filtro RichFaces Ajax in <literal>web.xml</literal>."
#. Tag: para
#: Configuration.xml:246
#, no-c-format
msgid "The RichFaces Ajax filter is only installed if the RichFaces jars are present in your project."
-msgstr ""
+msgstr "Il filtro RichFaces Ajax è installato solo se i jar di RichFaces sono presenti nel progetto."
#. Tag: para
#: Configuration.xml:251
#, no-c-format
msgid "To override the default settings, add the following entry to <literal>components.xml</literal>. The options are the same as those specified in the RichFaces Developer Guide:"
-msgstr ""
+msgstr "Per sovrascrivere le impostazioni di default aggiungere la seguente riga a <literal>components.xml</literal>. Le opzioni sono le stesse di quelle specificate nella guida RichFaces Developer:"
#. Tag: programlisting
#: Configuration.xml:254
Modified: branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Webservices.po
===================================================================
--- branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Webservices.po 2009-05-16 17:30:12 UTC (rev 10917)
+++ branches/community/Seam_2_1/doc/Seam_Reference_Guide/it-IT/Webservices.po 2009-05-16 19:16:17 UTC (rev 10918)
@@ -6,8 +6,8 @@
"Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: http://bugs.kde.org\n"
"POT-Creation-Date: 2009-05-10 10:19+0000\n"
-"PO-Revision-Date: 2009-05-16 17:46+0100\n"
-"Last-Translator: Francesco Milesi <milesif(a)gmail.com>\n"
+"PO-Revision-Date: 2009-05-16 20:58+0100\n"
+"Last-Translator: Nicola Benaglia <nico.benaz(a)gmail.com>\n"
"Language-Team: none\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -454,7 +454,7 @@
#: Webservices.xml:233
#, no-c-format
msgid "The full base path to your resources is now <literal>/seam/resource/restv1/{resource}</literal> - note that your <literal>@Path</literal> definitions and mappings do NOT change. This is an application-wide switch usually used for versioning of the HTTP API."
-msgstr "Il percorso completa alle risorse è ora <literal>/seam/resource/restv1/{resource}</literal> - si noti che che le definizioni e le mappature di tipo path <literal>@Path</literal> NON cambiano. Questo è uno \"switch\" a livello di applicazione di solito usato per la gestione delle versioni delle API HTTP."
+msgstr "Il percorso completo alle risorse è ora <literal>/seam/resource/restv1/{resource}</literal> - si noti che che le definizioni e le mappature di tipo path <literal>@Path</literal> NON cambiano. Questo è uno \"switch\" a livello di applicazione di solito usato per la gestione delle versioni delle API HTTP."
# troncamento??? ritaglio....
#. Tag: para
@@ -473,7 +473,7 @@
#: Webservices.xml:245
#, no-c-format
msgid "The path of a resource is now mapped with e.g. <literal>@Path(\"/seam/resource/rest/customer\")</literal>. We do not recommend disabling this feature, as your resource class mappings are then bound to a particular deployment scenario."
-msgstr "Il percorso di una risorsa è ora mappato, per esempio, con <literal>@Path(\"/seam/resource/rest/customer\")</literal>. Non è raccomandabile disabilitare questa caratteristica, poiché le mappature delle classi delle risorse risulta allora legato al particolare scenario di deploy."
+msgstr "Il percorso di una risorsa è ora mappato, per esempio, con <literal>@Path(\"/seam/resource/rest/customer\")</literal>. Non è raccomandabile disabilitare questa caratteristica, poiché le mappature delle classi delle risorse risultano allora legate al particolare scenario di deploy."
#. Tag: para
#: Webservices.xml:251
@@ -525,7 +525,7 @@
#: Webservices.xml:259
#, no-c-format
msgid "The <literal>use-built-in-providers</literal> switch enables (default) or disables the RESTEasy built-in providers. We recommend you leave them enabled, as they provide plaintext, JSON, and JAXB marshalling out of the box."
-msgstr "L'interruttore <literal>use-built-in-providers</literal> abilita (default) o disabilita i providers RESTEasy precostituiti. Si raccomanda di lasciarli abilitati, poiché essi forniscono automaticamente la gestione del \"marshalling\" testuale, JSON, and JAXB."
+msgstr "L'interruttore <literal>use-built-in-providers</literal> abilita (default) o disabilita i provider RESTEasy precostituiti. Si raccomanda di lasciarli abilitati, poiché essi forniscono automaticamente la gestione del \"marshalling\" testuale, JSON, e JAXB."
# Seam <literal>jndi-pattern</literal> su <literal><core:init/></literal>????????????
#. Tag: para
14 years, 11 months